没有合适的资源?快使用搜索试试~ 我知道了~
RSA\ELGmal\ECC算法
需积分: 9 10 下载量 165 浏览量
2011-07-04
11:27:20
上传
评论
收藏 147KB DOC 举报
温馨提示
试读
37页
总结后的资料.第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。
资源推荐
资源详情
资源评论
1、RSA 算法
它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:
和 。但 的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未
被完全攻破。
一、 算法
首先找出三个数
其中 是两个相异的质数是与 互质的数
这三个数便是
接著找出 使得
这个 一定存在因为 与 互质用辗转相除法就可以得到了
再来计算
这两个数便是 !"
编码过程是若资料为 将其看成是一个大整数假设 #
如果 $的话就将 表成 进位 #通常取 %&
则每一位数均小於 然後分段编码
接下来计算 !&'#!#
!就是编码後的资料
解码的过程是计算 "!&'#"#
於是乎解码完毕等会会证明 "和 其实是相等的
如果第三者进行窃听时他会得到几个数!
他如果要解码的话必须想办法得到
所以他必须先对 作质因数分解
要防止他分解最有效的方法是找两个非常的大质数
使第三者作因数分解时发生困难
#定理$
若 是相异质数
是任意一个正整数!&"!&
则 "
证明的过程会用到费马小定理叙述如下
是任一质数是任一整数则 &
换另一句话说如果 和 互质则 &
运用一些基本的群论的知识就可以很容易地证出费马小定理的
#证明$
因为 所以 (其中 是整数
因为在 中是 乘法的
)* *$) *
所以"!&&&&&(
如果 不是 的倍数也不是 的倍数时
则 &费马小定理$&
&费马小定理$&
所以 均能整除 &$+&
即 &
$"&(
%如果 是 的倍数但不是 的倍数时
则 &费马小定理
$&
$"&(
$+"
因 +
$"&('
$+"
所以+"$"
,如果 是 的倍数但不是 的倍数时证明同上
-如果 同时是 和 的倍数时
则 +
$"&('
$+"
$"
./0
这个定理说明 经过编码为 !再经过解码为 "时"
但我们在做编码解码时限制 '##'#"#
所以这就是说 等於 "所以这个过程确实能做到编码解码的功能
二、的安全性
的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解 就一定需要作大
数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前, 的一些变种算法已被证明等
价于大数分解。不管怎样,分解 是最显然的攻击方法。现在,人们已能分解多个十进制位的大素数。因此,模数 必须选大
一些,因具体适用情况而定。
三、 的速度
由于进行的都是大数计算,使得 最快的情况也比 0/ 慢上倍,无论是软件还是硬件实现。速度一直
是 的缺陷。一般来说只用于少量数据加密。
四、 的选择密文攻击
在选择密文攻击面前很脆弱。一般攻击者是将某一信息作一下伪装1,让拥有私钥的实体签署。
然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:
乘幂保留了输入的乘法结构:
23&2&43&
前面已经提到,这个固有的问题来自于公钥密码系统的最有用的特征每个人都能使用公钥。但从算法
上无法解决这一问题,主要措施有两条:一条是采用好的公钥协议,保证工作过程中实体不对其他实体任
意产生的信息解密,不对自己一无所知的信息签名;另一条是决不对陌生人送来的随机文档签名,签名时
首先使用 5678 "对文档作 77 处理,或同时使用不同的签名算法。在中提到了几
种不同类型的攻击方法。
五、 的公共模数攻击
若系统中共有一个模数,只是不同的人拥有不同的 和 ,系统将是危险的。最普遍的情况是同一信息用
不同的公钥加密,这些公钥共模而且互质,那末该信息无需私钥就可得到恢复。设 9 为信息明文,两个加
密密钥为 和 %,公共模数是 ,则:
:9&
:%9&%
密码分析者知道 、、%、: 和 :%,就能得到 9。
因为 和 % 互质,故用 / " 算法能找到 和 ,满足:
4(4%
假设 为负数,需再用 / " 算法计算 :&,则
:&&4:%&9
另外,还有其它几种利用公共模数攻击的方法。总之,如果知道给定模数的一对 和 ,一是有利于攻
击者分解模数,一是有利于攻击者计算出其它成对的 ;和 ;,而无需分解模数。解决办法只有一个,那
就是不要共享模数 。
的小指数攻击。 有一种提高 速度的建议是使公钥 取较小的值,这样会使加密变得易于实现,
速度有
所提高。但这样作是不安全的,对付办法就是 和 都取较大的值。
算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 是被研究得最广泛的
公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀
的公钥方案之一。 的安全性依赖于大数的因子分解,但并没有从理论上证明破译 的难度与大数
分解难度等价。即 的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向
于因子分解不是 <9: 问题。 的缺点主要有:产生密钥很麻烦,受到素数产生技术的限制,因而难
以做到一次一密。1分组长度太大,为保证安全性,至少也要 =''!以上,使运算代价很高,尤其
是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数
据格式的标准化。目前,/>" /"">"协议中要求 : 采用比特长的密钥,其
他实体使用比特的密钥。
2、DES 算法
一、0/ 算法
美国国家标准局 ?@, 年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于 ?@, 年
A 月 A 日和 ?@- 年 B 月 %@ 日先后两次向公众发出了征求加密算法的公告。加密算法要达到的目的
(通常称为 0/密码算法要求)主要为以下四点:
C提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改;
C具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;
CDES 密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;
C实现经济,运行有效,并且适用于多种完全不同的应用。
?@@ 年 月,美国政府颁布:采纳 D13 公司设计的方案作为非机密数据的正式数据加密标准(0/ 棗 0/"
)。
目前在国内,随着三金工程尤其是金卡工程的启动,0/ 算法在 95、>3、磁卡及智能卡(D: 卡)、加油站、高速公
路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的 9D< 的加密传输,D: 卡与 95 间的双向认证、
金融交易数据包的 3: 校验等,均用到 0/ 算法。
0/ 算法的入口参数有三个:E、0、3。其中 E 为 B 个字节共 =- 位,是 0/ 算法的工作密钥;0 也为
B 个字节 =- 位,是要被加密或被解密的数据;3 为 0/ 的工作方式,有两种:加密或解密。
0/ 算法是这样工作的:如 3 为加密,则用 E去把数据 0 进行加密, 生成 0 的密码形式(=- 位)作为
0/ 的输出结果;如 3 为解密,则用 E 去把密码形式的数据 0 解密,还原为 0 的明码形式(=- 位)作为 0/
的输出结果。在通信网络的两端,双方约定一致的 E,在通信的源点用 E 对核心数据进行 0/ 加密,然后以密码形式在
公共通信网(如电话网)中传输到通信网络的终点,数据到达目的地后,用同样的 E 对密码数据进行解密,便再现了明码形
式的核心数据。这样,便保证了核心数据(如 9D<、3: 等)在公共通信网中传输的安全性和可靠性。
通过定期在通信网络的源端和目的端同时改用新的 E,便能更进一步提高数据的保密性,这正是现在金融交易网络的流
行做法。
0/ 算法详述
0/ 算法把 =- 位的明文输入块变为 =- 位的密文输出块,它所使用的密钥也是 =- 位,整个算法的主流程图如下:
其功能是把输入的 =- 位数据块按位重新组合,并把输出分为 '、' 两部分,每部分各长 ,% 位,其置换规则见下表:
ABA'-%,-%=B'%='A%--,=%B%'%-
=%A--=,B,'%%-==-A=-B-',%%-=B
A@-?-,,%A@?A?A-,,A%@?,
=A,-A,@%?%,A=,AA-@,?,%,A@
即将输入的第 AB 位换到第一位,第 A' 位换到第 % 位,,依此类推,最后一位是原来的第 @ 位。'、' 则是换位输出
后的两部分,' 是输出的左 ,% 位,'是右 ,% 位,例:设置换前的输入值为 00%0,0=-,则经过初始置换后的结果
为:'0AB0A'0B;'0A@0-?0@。
经过 = 次迭代运算后。得到 =、=,将此作为输入,进行逆置换,即得到密文输出。逆置换正好是初始置的逆运算,
例如,第 位经过初始置换后,处于第 -' 位,而通过逆置换,又将第 -' 位换回到第 位,其逆置换规则如下表所示:
-'B-B=A=%-=-,%,?@-@AAA%,=,,
,B=-=-A-%%=%,',@A-A,A,%=%?
,=---%A%%'='%B,A,-,A?A?%@
,-%-%'A'BAB%=,,-?-?@A@%A
放大换位表
,%%,-A-A=@B?B?'
%,%,-A=@=@B?%'%%'%
%%%,%-%A%-%A%=%@%B%?%B%?,',,%
单纯换位表
=@%'%%?%%B@A%,%=AB,'
%B%--,%%@,??,,'=%%-%A
在 FE算法描述图中,%B 为选择函数,其功能是把 =! 数据变为 -! 数据。下面给出选择函数
%B的功能表:
选择函数
--,%AB,'=%A?'@
'A@--%,'=%?A,B
--B,=%A%?@,'A'
A%B%-?@A,-''=,
%
AB-=,-?@%,%'A'
,,-@A%B-%''=?A
'-@'-,AB%=?,%A
,B',A-%=@%'A-?
,
''?-=,AA,%@-%B
,@'?,-='%BA-%A
,=-?BA,'%%A'-@
','=?B@-A-,A%%
-
@,-,'=?'%BA%-A
,BA=A',-@%%'-?
'=?'%@,A,-A%B-
,A'=',B?-A%@%-
A
%%-@'=BA,A,'-?
-%%-@,A'A',?B=
-%',@BA?%A=,'-
剩余36页未读,继续阅读
资源评论
qiyali
- 粉丝: 2
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功