今天主要总结一下常用的对称加密算法DES和AES以及非对称加密算法RSA。
01
DES加密算法
1.1的含义。数据加密标准
DES称为数据加密标准,是一种使用密钥加密的块算法。1977年,美国联邦政府国家标准局将其确定为联邦数据处理标准(FIPS),并授权其用于非机密的政府通信。然后,该算法在国际上广泛传播。
DES是一种常见的对称加密,它是一种使用密钥加密的分组算法。密钥长度为64位,超过位数的密钥被忽略。对称加密意味着加密和解密密钥是相同的。对称加密一般是把要加密的字符串按照固定长度分成块。少于整个块或仅在末尾有特殊的填充字符。
常见的填充模式有:PKCS5 ,'PKCS7 ,'ISO10126 ,'ANSIX923 还有零包括欧洲中央银行、中央银行、中央银行、OFB银行和CFB银行。
2.DES算法原理
DES算法的入口参数:Key,Data,Mode。Key为8字节64位,是DES算法的工作密钥;
数据也是8字节64位,是要加密或解密的数据;DES模式以两种方式工作:加密或解密。
3.DES加密原理
DES使用一个56位密钥和一个附加的8位奇偶校验位来生成最大64位的数据包。这是一种迭代分组密码,使用一种称为Feistel的技术,其中加密的文本块被分成两半。
使用subkey对其中一半应用loop函数,然后将输出与另一半进行XOR运算;然后交换两半,这个过程会继续,但最后一个循环不会交换。DES使用16个周期,并使用四种基本运算:异或、替换、替代和移位。
4.4的特点。DES算法
分组短,密钥短,密码生命周期短,运算速度慢。
02
AES加密算法
1.AES含义
AES,高级加密标准,在密码学中也称为Rijndael加密方法,是美国联邦政府采用的分组加密标准。这个标准用来代替原来的DES,经过多方分析,在世界范围内广泛使用。
严格来说,AES和Rijndael加密并不完全相同(虽然在实际应用中可以互换),因为Rijndael加密可以支持更大范围的块和密钥长度:AES的块长度固定为128位,而密钥长度可以是128、192或256位;
Rijndael使用的密钥和块长度可以是32位的整数倍,下限为128位,上限为256位。包括AES-ECB、AES-CBC、AES-CTR、AES-OFB和AES-CFB。
2.AES加密原理
AES加密涉及四种操作,即字节替换、行移位、列混淆和轮密钥加密。解密过程是相应的逆操作。因为每个操作都是可逆的,所以可以通过以相反的顺序解密来恢复明文。每一轮加解密的密钥都是通过扩展初始密钥得到的。在该算法中,明文、密文和16字节的轮密钥用一个4x4矩阵表示。
3.3的特点。AES算法
运算速度快,安全性高,资源消耗低。
03
rsa算法
1.1的含义。南非共和国(Republic of South Africa)
RSA加密算法是一种非对称加密算法,非常可靠。密钥越长,越难破解。根据已公布的文献,目前已被破解的最长RSA密钥为768个二进制位。
也就是说,长度超过768位的密钥是无法破解的(至少没有人公开宣布过)。因此,可以认为1024位RSA密钥基本安全,2048位密钥极其安全。
2.2的原则。RSA算法
在了解RSA算法原理之前,先了解一下非对称加密的过程:非对称加密通过两个密钥(公钥-私钥)对数据进行加密和解密。公钥用于加密,私钥用于解密。为什么非对称加密和解密可以用不同的密钥执行,这是一个数学问题。不同的非对称加密算法也可以适用于不同的数学知识。接下来,让让我们看看RSA算法是如何加密数据的。
下面是RSA算法的加密算法流程图:
3.3的特点。RSA算法
不需要传输密钥,提高了安全性。
可以执行数字签名认证。
加密效率不高,一般只适合处理少量数据(比如密钥)。
易受小索引攻击
japan quarterly 日本季刊
标签:算法密钥加密