高级加密标准AES算法是一种循环分组密码算法。在FIPS PUB 197中规定AES只可以用于处理128bit的分组,密钥长度可以是128bit、192bit或256bit,分别称为AES-128、AES-192和AES-256。
2.3.2 非对称加密算法
非对称加密算法又称公开密钥算法,它使用一个密钥进行加密,而使用另一个不同但是相关的密钥进行解密。其中的密钥是非对称的,它使用两个不同的密钥,这对于保密通信、密钥分配和鉴别等领域都有着深远的影响。公开密钥密码成功地解决了计算机网络安全的身份鉴别、数字签名等问题,推动了包括电子商务在内的一大批网络应用的不断深入发展。
非对称加密算法公式表示如下:C = EKUa[P];P = DKRa[C];P=DKRa[EKUa[P]]。
其中KUa为公开密钥、KRa为私有密钥,P为明文,C为密文。
公开密钥算法具有以下重要特性:仅仅知道密码算法和加密密钥而要确定解密密钥,在计算上是不可能的;两个相关密钥中任何一个都可以用作加密而让另外一个用作解密。例如,RSA算法。
RSA算法是一种分组密码,其中的明文和密文都是对于某个n的从0到n-1之间的整数。RSA算法包括三个部分:密钥的产生,加密,解密。
密钥的产生:选择两个大素数p, q(p, q保密);计算n = pq(n公开);计算φ(n) = (p-1)(q-1),φ(n)是n的欧拉函数;选择整数e,使得gcd(φ(n), e) = 1, 1 < e <φ(n) (e公开);计算d,使得ed = 1 mod φ(n),即d是e在模φ(n)下的乘法逆元;以KU = {e, n}为公开密钥,KR = {d, n}为私有密钥。
加密/解密:明文以分组为单位加密,每个分组是小于n的二进制值,即分组大小必须小于或等于log2(n)。M表示明文,C表示密文,分组大小是k比特,其中2k < n ≤ 2k+1,n是一个大数。加密形式如下:C = Me mod n;解密形式如下:M = Cd mod n。
RSA算法必须满足如下条件:有可能找到e、d、n的值,使得对所有M < n,有Med = M mod n;对于所有M < n的值,要计算Me和Cd相对来说是简单的;在给定e和n时,判断出d是不可行的。
表1 对称加密与非对称加密比较
对称加密 非对称加密
加密解密 同一密钥 不同但相关的密钥
安全条件 密钥必须保密 其中一个保密
加密速度 快 慢
方便性 密钥分配不便 密钥公开方便
密钥数量 N(N-1)/2 2N
功能 加密 加密、签名、密钥分配
2.4 消息摘要(散列函数)
消息摘要主要是实现将大量的信息不可逆映射成一段定长或较短的信息而基本保持其独特性。散列函数以变长的报文M作为输入,产生定长的报文摘要或散列值H(M)。报文摘要主要用于报文的完整性鉴别,另外,还可以用于存储文件的完整性鉴别。散列函数将任意长度的报文当作自变量,结果产生规定长度的报文摘要,可用如下函数形式表示:h = H(M),其中M为变长报文,H(M)为定长的报文摘要MD。当确信或已知报文值正确时,报文摘要MD在源点被加到该报文上。接收端通过计算该报文的MD并将其与收到的MD进行比较来鉴别该报文。
由于散列函数是公开的,所以需要对其进行保护。目前常用的有MD5、SHA和SHA1算法等等。
2.5.数字签名
数字签名就像手写签名一样,可以保证文件发送者或者合同签署者身份的准确无误。数字签名是网络中进行安全交易的基础,数字签名不仅可以保证信息的完整性和信息源的可靠性,而且可以防止通信双方的欺骗和抵赖行为。前文中所提到的非对称加密算法解决了数字签名的难题便是数字密码学在信息安全领域扩展应用的典型例子。
- 上一篇:ASP.net电影院在线售票系统的设计+源代码
- 下一篇:php网上购物平台设计+ER图+流程图
-
-
-
-
-
-
-
乳业同业并购式全产业链...
java+mysql车辆管理系统的设计+源代码
电站锅炉暖风器设计任务书
中考体育项目与体育教学合理结合的研究
河岸冲刷和泥沙淤积的监测国内外研究现状
当代大学生慈善意识研究+文献综述
大众媒体对公共政策制定的影响
十二层带中心支撑钢结构...
酸性水汽提装置总汽提塔设计+CAD图纸
杂拟谷盗体内共生菌沃尔...