加密技术06-加密总结
对称密码是一种用相同的密钥进行加密和解密的技术,用于确保消息的机密性。在对称密码的算法方面,目前主要使用的是 AES。尽管对称密码能够确保消息的机密性,但需要解决将解密密钥配送给接受者的密钥配送问题。
主要算法
DES
数据加密标准(英语:Data Encryption Standard,缩写为 DES)是一种对称密钥加密块密码算法,1976年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。它基于使用56位密钥的对称算法。
DES现在已经不是一种安全的加密方法,主要因为它使用的56位密钥过短。
原理请参考: 加密技术01-对称加密-DES原理
3DES
三重数据加密算法(英语:Triple Data Encryption Algorithm,缩写为TDEA,Triple DEA),或称3DES(Triple DES),是一种对称密钥加密块密码,相当于是对每个数据块应用三次DES算法。由于计算机运算能力的增强,原版DES由于密钥长度过低容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
注意:有3个独立密钥的3DES的密钥安全性为168位,但由于中途相遇攻击(知道明文和密文),它的有效安全性仅为112位。
3DES使用“密钥包”,其包含3个DES密钥,K1,K2和K3,均为56位(除去奇偶校验位)。
密文 = E k3 (D k2 (E k1 (明文)))
而解密则为其反过程:
明文 = D k3 (E k2 (D k1 (密文)))
AES
AES 全称 Advanced Encryption Standard(高级加密标准)。它的出现主要是为了取代 DES 加密算法的,因为 DES 算法的密钥长度是 56 位,因此算法的理论安全强度是 56 位。于是 1997 年 1 月 2 号,美国国家标准技术研究所宣布希望征集高级加密标准,用以取代 DES。AES 也得到了全世界很多密码工作者的响应,先后有很多人提交了自己设计的算法。最终有5个候选算法进入最后一轮:Rijndael,Serpent,Twofish,RC6 和 MARS。最终经过安全性分析、软硬件性能评估等严格的步骤,Rijndael 算法获胜。
AES 密码与分组密码 Rijndael 基本上完全一致,Rijndael 分组大小和密钥大小都可以为 128 位、192 位和 256 位。然而 AES 只要求分组大小为 128 位,因此只有分组长度为 128 位的 Rijndael 才称为 AES 算法。
本文 AES 默认是分组长度为 128 位的 Rijndael 算法
原理请参考: 加密技术02-对称加密-AES原理
算法对比
公钥密码是一种用不同的密钥进行加密和解密的技术,和对称密码一样用于确保消息的机密性。使用最广泛的一种公钥密码算法是 RAS。和对称密码相比,公钥密码的速度非常慢,因此一般都会和对称密码一起组成混合密码系统来使用。公钥密码能够解决对称密码中的密钥交换问题,但存在通过中间人攻击被伪装的风险,因此需要对带有数字签名的公钥进行认证。
公钥密码学的概念是为了解决对称密码学中最困难的两个问题而提出
应用场景
几个误解
主要算法
Diffie–Hellman 密钥交换
迪菲-赫尔曼密钥交换(英语:Diffie–Hellman key exchange,缩写为D-H) 是一种安全协议。它可以让双方在完全没有对方任何预先信息的条件下通过不安全信道创建起一个密钥。这个密钥可以在后续的通讯中作为对称密钥来加密通讯内容。公钥交换的概念最早由瑞夫·墨克(Ralph C. Merkle)提出,而这个密钥交换方法,由惠特菲尔德·迪菲(Bailey Whitfield Diffie)和马丁·赫尔曼(Martin Edward Hellman)在1976年发表,也是在公开文献中发布的第一个非对称方案。
Diffie–Hellman 算法的有效性是建立在计算离散对数很困难的基础上。简单地说,我们可如下定义离散对数。首先定义素数 p 的本原跟。素数 p 的本原根是一个整数,且其幂可以产生 1 到 p-1 之间所有整数,也就是说若 a 是素数 p 的本原根,则
a mod p, a 2 mod p,..., a p-1 mod p 各不相同,它是整数 1 到 p-1 的一个置换。
对任意整数 b 和素数 p 的本原跟 a,我们可以找到唯一的指数 i 使得
b ≡ a i (mod p) 其中 0 <= i <= p-1
其中 a, b, p 这些是公开的,i 是私有的,破解难度就是计算 i 的难度。
Elgamal
1985年,T.Elgamal 提出了一种基于离散对数的公开密钥体制,一种与 Diffie-Hellman 密钥分配体制密切相关。Elgamal 密码体系应用于一些技术标准中,如数字签名标准(DSS) 和 S/MIME 电子邮件标准。
基本原理就是利用 Diffie–Hellman 进行密钥交换,假设交换的密钥为 K,然后用 K 对要发送的消息 M,进行加密处理。
所以 Elgamal 的安全系数取决于 Diffie–Hellman 密钥交换。
另外 Elgamal 加密后消息发送的长度会增加一倍。
RSA
MIT 的罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在 1977 年提出并于 1978 年首次发表的算法。RSA 是最早满足要求的公钥算法之一,自诞生日起就成为被广泛接受且被实现的通用的公钥加密方法。
RSA 算法的有效性主要依据是大数因式分解是很困难的。
原理请参考: 加密技术03-非对称加密-RSA原理
ECC
大多数使用公钥密码学进行加密和数字签名的产品和标准都使用 RSA 算法。我们知道,为了保证 RSA 使用的安全性,最近这些年来密钥的位数一直在增加,这对使用 RSA 的应用是很重的负担,对进行大量安全交易的电子商务更是如此。近来,出现的一种具有强大竞争力的椭圆曲线密码学(ECC)对 RSA 提出了挑战。在标准化过程中,如关于公钥密码学的 IEEE P1363 标准中,人们也已考虑了 ECC。
与 RSA 相比,ECC 的主要诱人之处在于,它可以使用比 RSA 短得多的密钥得到相同安全性,因此可以减少处理负荷。
ECC 比 RSA 或 Diffie-Hellman 原理复杂很多,本文就不多阐述了。
算法对比
公钥密码体制的应用
密码分析所需计算量( NIST SP-800-57 )
注:L=公钥的大小,N=私钥的大小
散列函数是一种将长消息转换为短散列值的技术,用于确保消息的完整性。在散列算法方面,SHA-1 曾被广泛使用,但由于人们已经发现了一些针对该算法理论上可行的攻击方式,因此该算法不应再被用于新的用途。今后我们应该主要使用的算法包括目前已经在广泛使用的 SHA-2,以及具有全新结构的 SHA-3 算法。散列函数可以单独使用,也可以作为消息认证、数字签名以及伪随机数生成器等技术的组成元素来使用。
主要应用
主要算法
MD5
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个 128 位( 16 字节,被表示为 32 位十六进制数字)的散列值(hash value),用于确保信息传输完整一致。MD5 由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于 1992 年公开,用以取代 MD4 算法。这套算法的程序在 RFC 1321 中被加以规范。
2009年,中国科学院的谢涛和冯登国仅用了 2 20.96 的碰撞算法复杂度,破解了MD5的碰撞抵抗,该攻击在普通计算机上运行只需要数秒钟。2011年,RFC 6151 禁止MD5用作密钥散列消息认证码。
原理请参考: 加密技术04-哈希算法-MD5原理
SHA-1
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦资料处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
2005年,密码分析人员发现了对SHA-1的有效攻击方法,这表明该算法可能不够安全,不能继续使用,自2010年以来,许多组织建议用SHA-2或SHA-3来替换SHA-1。Microsoft、Google以及Mozilla都宣布,它们旗下的浏览器将在2017年停止接受使用SHA-1算法签名的SSL证书。
2017年2月23日,CWI Amsterdam与Google宣布了一个成功的SHA-1碰撞攻击,发布了两份内容不同但SHA-1散列值相同的PDF文件作为概念证明。
2020年,针对SHA-1的选择前缀冲突攻击已经实际可行。建议尽可能用SHA-2或SHA-3取代SHA-1。
原理请参考: 加密技术05-哈希算法-SHA系列原理
SHA-2
SHA-2,名称来自于安全散列算法2(英语:Secure Hash Algorithm 2)的缩写,一种密码散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布。属于SHA算法之一,是SHA-1的后继者。其下又可再分为六个不同的算法标准,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。
SHA-2 系列的算法主要思路和 SHA-1 基本一致
原理请参考: 加密技术05-哈希算法-SHA系列原理
SHA-3
SHA-3 第三代安全散列算法(Secure Hash Algorithm 3),之前名为 Keccak 算法。
Keccak 是一个加密散列算法,由 Guido Bertoni,Joan Daemen,Michaël Peeters,以及 Gilles Van Assche 在 RadioGatún 上设计。
2012年10月2日,Keccak 被选为 NIST 散列函数竞赛的胜利者。SHA-2 目前没有出现明显的弱点。由于对 MD5、SHA-0 和 SHA-1 出现成功的破解,NIST 感觉需要一个与之前算法不同的,可替换的加密散列算法,也就是现在的 SHA-3。
SHA-3 在2015年8月5日由 NIST 通过 FIPS 202 正式发表。
原理请参考: 加密技术05-哈希算法-SHA系列原理
算法对比
密码技术的功能指的是加密和解密功能
4. 数据加密技术将数据转变为难以解读的代码,只有通过密码才能还原信息。常见的密码技术包括对称密钥加密、公钥加密、哈希算法和数字签名等。5. 对称密钥加密使用相同的密钥进行加密和解密,例如AES加密标准。6. 密码技术涵盖了密码编码、密码分析、认证技术和密钥管理等方面,主要解决信息的加密保护问题。7....
密码技术主要是
3、数据加密的基本思想是通过改变信息的表现形式来伪装需要保护的敏感信息,使未授权者无法理解受保护信息的内容。网络安全使用密码学来帮助完成敏感信息传输中的相关问题,主要包括:一保密性。4、典型的密码技术包括什么如下:对称加密算法对称加密算法是指加密和解密采用相同的密钥,是可逆的(即可解密)。
加密和解密技术是怎么样的?
一方面,实现信息共享,充分发挥信息的价值。另一方面,信息犯罪日趋严重。仅在西方国家,包括计算机病毒在内的计算机犯罪,每年正以20%的速度增长。这一事实说明信息共享与信息安全之间存在着尖锐的矛盾。人们为了维护国家和个人的合法权益,保护有价值的信息不被侵犯,对计算机系统和通信系统采取了加密技术和...
什么是加解密技术
加密技术是一种信息安全手段,用于保护数据在传输或存储过程中的机密性和完整性。它通过将原始数据(明文)转换成只有授权用户才能解读的形式(密文)来实现这一目的。加密技术可以防止未授权的第三方访问或篡改敏感信息,从而确保数据的保密性和完整性。加密技术的基本原理涉及两个主要元素:加密算法和密钥。...
密码技术包括哪些
密码技术包括:对称加密、非对称加密、哈希函数、数字签名、密码学杂凑函数。1、对称加密 这种加密方法使用相同的密钥进行加密和解密。也就是说,发送者和接收者需要使用相同的密钥来加密和解密信息。常见的对称加密算法包括AES(高级加密标准)和DES(数据加密标准)。2、非对称加密 非对称加密使用两个密钥...
加密技术有哪几种分类
加密技术分为私用密钥加密技术和公开密钥加密技术。其中私用密钥加密技术中最具有代表性的算法是IBM公司提出的DES算法、三重DES算法(是DES加强版)、日本密码学家提出随机化数据加密标准(RDES)、瑞士学者发明的IDEA国际信息加密算法;公开密钥加密技术的核心是运用一种特殊的数学函数(单向陷门函数)。算法...
密码技术包含两方面密切相关的内容及加密和解密
主要包括密码编码学、密码分析学、密码密钥学。密码编码学是研究加密算法的规律并将其用于通信以保护秘密信息的科学。密码分析学也称密码破译学,是研究密码变化的规律并将其用于密码以获取信息情报的科学。密码密钥学则将密钥作为研究对象,包括密钥的产生、分配、存储、保护、销毁等技术。
密码技术主要是
密码技术包括密码编码技术、密码分析技术、认证技术和密钥管理技术。密码编码技术包括序列密码编码技术、分组密码编码技术和公钥密码编码技术。主要任务是解决信息的加密保护问题,手段是利用加密算法在密钥的指示下对明文加密产生密文。密码算法既要做到安全,又要满足实际需要。密码分析技术包括序列密码分析技术、...
密码技术公开密钥密码标准历史
1978年,RSA算法的诞生革新了密码技术,为公网络信息的加密和验证提供了基础方案。RSA的核心是生成一对密钥,一个保密,用户保管,另一个公开,可公开发布,甚至在服务器上注册。为了增强保密性,RSA密钥通常至少500位,推荐使用1024位,这使得加密过程计算量庞大。为减小负担,通常采用DES或IDEA传统加密和...
密码技术主要是用来
2、密码技术涵盖了密码编码、密码分析、认证以及密钥管理等多个方面。密码编码技术涉及序列密码、分组密码和公钥密码等,主要目的是保护信息的安全。3、数据加密的核心目标是将敏感信息通过变换其表现形式来隐藏,以防止未授权访问。网络安全利用密码学确保敏感信息在传输过程中的保密性。4、常见的密码技术包括...
夕食异丙: 加密技术的要点是加密算法,加密算法可以分为对称加密、不对称加密和不可逆加密三类算法
安吉县17711128473: 加密技术是指什么??
夕食异丙: 加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密). 加密技术包括两个元素:算法和密钥.算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法.在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全.
安吉县17711128473: 电子商务的加密技术有哪些?是如何加密和解密的? - ?
夕食异丙: 1.什么是加密技术? 加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密).加密技术包括两个元素:算法和密钥.算法...
安吉县17711128473: 数据库加密的实现技术 - ?
夕食异丙: 对数据进行加密,主要有三种方式:系统中加密、客户端(DBMS外层)加密、服务器端(DBMS内核层)加密.客户端加密的好处是不会加重数据库服务器的负载,并且可实现网上的传输加密,这种加密方式通常利用数据库外层工具实现.而...
安吉县17711128473: 加密技术是指什么? - ?
夕食异丙: 加密其实就是通过一些特殊的手段或方式,使原本可以直观看到的东西增加了高级防护的措施. 例如一般的文件加密,通常是加了层密码保护. 密码加密,就是给原有密码增加一种转换模式,就有点像电报一样,经过固定的算法把原来的密码转化成其他的代码,即便给你看了你也不知道他原来是什么.
安吉县17711128473: 电子商务安全技术 - -加密技术_?
夕食异丙: 、数据加密过程数据加密的基本过程就是对原来为原始的或未加密的数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,只能在输入相应的密钥之后才能显示出来本来内容,通过这样的途径来达到保护数据不被非法窃...
安吉县17711128473: 加密文件(关于加密文件的基本详情介绍) ?
夕食异丙: 1、文件加密是一种根据要求在操作系统层自动地对写入存储介质的数据进行加密的技术.2、包括WINDOWS自带的文件加密功能等.
安吉县17711128473: 加密技术的两个元素 - ?
夕食异丙: 加密技术包括两个元素:算法和密钥.算法是将普通的文本(或者可以理解的信息)与一串数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法.在安全保密中,可通过适当的密钥加密技术和管理机...
安吉县17711128473: 数据加密的方法有哪些? - ?
夕食异丙: 一种数据加密的方法.首先,利用一中文断词方法将文章内容予以断词,并进行词性判断以标注词性.然后,产生文章的加密信息,包括将水印信息转换成位字符串,以及根据一质数产生一个二次剩余表,作为选取加密词语的判断标准.接下来,选取要进行加密的词语及其同义词,其依据相关词语筛选规则筛选不适合作为嵌入水印的词语.然后进行同义词替换.当找出适合作为嵌入水印的词语之后,便可将水印的位字符串,以一个位为单位,依照顺序嵌入至选出的词语中.最后,完成前述步骤后即可产生嵌入水印信息的密文.
安吉县17711128473: 总结一下PHP中有哪些加密算法技术 - ?
夕食异丙: 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] )2. Crype加密 string crypt ( string $str [, string $salt ] ) crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串.3. Sha1加密 string sha1 ( string $str [, ...