RSA算法流程(假设A给B发消息): p、q:找到两个质数p、q,比如 p = 3,q = 5 n:n = p ✖️ q = 15 φ(n):φ(n) =(p-1)✖️(p-1)= 2 ✖️ 4 = 8 公钥e:需满足俩条件:1️⃣、1 < e < φ(n) 2️⃣、e与n互为质数。比如取 e = 7 私钥d:需要满足条件:e ✖️ d ➗ φ(n) 余数为1,例如:7 ✖️ 15 ➗ 8 余数为1,取 d = 15 A方加密:假设发送的信息为数字 m = 2,加密公式为: m^e ➗ n 余数为 c,即 2^7 ➗ 15 余数为 8,即 c = 8 B方解密:解密公式:c^d ➗ n 余数就是 m(A传过来的数字),即 8^15 ➗ 15 余数为 m = 2 console.log(35184372088832)
2022-05-05 23:22:02 23KB 密码学实验报 RSA源代码
1
输入密钥和明文,明文先进行初始变换,分为左右两半L0和R0,各32位长,R0放入扩展函数E,扩展成48位;密钥k进行置换选择PC1,密钥中每个第8 位都用作奇偶校验,故有效密钥长度是56位,分为左右两半,各为28位,分别循环左移后合并,进入置换选择PC2,变为48位,将结果与扩展后的R0异或,进入函数组S1,变为32位,再进入置换选择P,输出加密函数f,函数f与L0异或,其结果成为R1,原来的R0成为L1。将该操作重复16次。经过16轮迭代后,左,右半部分合在一起经过逆初始变换,这样就完成了加密过程。
2021-05-05 20:35:33 107KB 密码学实验报 DES加解密
1