仿射密码怎样实现选择明文攻击,唯密文攻击,已知明文攻击

来源:百度知道 编辑:UC知道 时间:2024/09/22 03:38:44
仿射密码怎样实现选择明文攻击,唯密文攻击,已知明文攻击,请用C或者C++来实现,或者告诉我实现的方法或基本算法也可以。回答的明确再加100分
大哥,都说了是仿射密码啦,你看没有看题目啊?

密码学的知识,不太了解,帮你找了下
http://book.csdn.net/bookfiles/884/10088427852.shtml
往下一点就找到了,网页有点乱~~

6. 仿射密码
把加法密码和乘法密码联合起来,就得到了所谓的仿射密码(affine cipher)—— 两种密码与一对密钥的组合。乘法密码使用第一个密钥,加法密码使用第二个密钥。如图3-11所示,仿射密码其实就是被先后使用的两种密码。我们本来可以提出一种有关加密和解密的复杂运算,如C = (P ′ k1 + k2) mod 26和P = ((C - k2) ′ k1-1) mod 26。然而,我们用临时结果(T)表示两种单独的运算,以表明无论什么时候使用密码组合,均需确保在行的另一端要有一个逆,该逆在加密和解密过程中使用的顺序是相反的。如果加法是加密过程中的最终运算,那么减法就是解密过程中的初始运算。

在仿射密码中,明文P和密文C的关系是

图3-11 仿射密码

例3.9
仿射密码使用密钥对,在该密钥对中第一密钥来自集合Z26*,第二密钥来自集合Z26。密钥域的长度是26 ′ 12 = 312。

例3.10
运用仿射密码对带有密钥对(7, 2)的信息“hello”进行解密。

解答

对乘法密钥使用7,对加法密钥使用2,就会得到“ZEBBW”。

例3.11
在模26中,用仿射密码对具有密钥对(7, 2)的信息“ZEBBW”进行解密。

解答

把- 2 o 24 (mod 26)的加法逆加在接收的密文中。然后,再用结果乘以7–1 o 15 (mod 26)的乘法逆,就求出了明文字符。因为2在集合Z26中有一个加法逆,7在集合Z26*中有一个乘法逆,明文正好就是我们在例3.10中所用的。

要知道加密算