Pandas 中,如何分组再取 N项?
|
则可得到分组后的key的明文信息为:11,05,25。 3)明文加密 用户加密密钥(3,33)将数字化明文分组信息加密成密文。由C≡Me(mod n)得: C1=(M1)d(modn)=113(mod33)=11 C2=(M2)d(modn)=053(mod33)=26 C3=(M3)d(modn)=253(mod33)=16
因此,得到相应的密文信息为:11,26,16。 米勒-拉宾素性检验(Miller-Rabin Prime Test)是一种典型的概率检验方法。可以证明单次Miller-Rabin的正确概率大于3/4,我们重复若干次就可以增大这个概率。Miller-Rabin虽然有一定的概率出错,但实践证明,在重复20次的情况下,107以内的质数不会判断出错。 2、RSA加解密算法过程 (1)RSA加密算法过程 RSA加密算法的过程如下: ① 取两个随机大素数p和q(保密); ② 计算公开的模数n=p×q(公开); ③ 计算秘密的欧拉函数φ(n)=(p-1)×(q-1)(保密),丢弃p和q,不要让任何人知道; ④ 随机选取整数e,使其满足gcd(e,φ(n))=1(公开e加密密钥); ⑤ 计算d,使其满足de≡1(mod φ(n))(保密d解密密钥); ⑥ 将明文X按模为r自乘e次幂以完成加密操作,从而产生密文Y(X、Y值在0到n-1范围内),即Y=Xemod n; ⑦ 解密,将密文Y按模为n自乘d次幂,得X=Ydmod n。 在RSA加(解)密算法实现过程中,主要的运算量是计算模的逆元以及模指数,通常情况下,计算模的逆元时会采用扩展的欧几里德算法。 (2)RSA解密算法过程 由于指数较大,因此RSA解密过程比较耗时,但利用孙子定理(Chinese Remainder Theorem,CRT)可提高解密算法效率。CRT对RSA解密算法生成两个解密方程(利用M=Cdmod pq),即:M1=Mmod p=(Cmod p)d mod (p-1)mod p,M2=Mmod q=(Cmod q)d mod (q-1)mod q。 解方程M=M1mod p和M=M2mod q,可求得其具有唯一解。 3、RSA算法应用 (1)RSA用于数字签名 ① 签名:对任意消息m∈M,用户使用自己的私钥签名如下:S≡md(mod n),进而可以得到签名的消息(m, S)。 ② 验证签名:由该用户的公开密钥(e, n),验证m≡Se(mod n)是否成立。 (2)RSA加密算法实例 可以通过一个简单的例子来理解RSA的工作原理。为了便于计算,在以下实例中只选取小数值的素数p, q以及e,假设用户A需要将明文“key”通过RSA加密后传递给用户B,过程如下。 1)设计公私密钥(e,n)和(d,n)
令p=3,q=11,得出n=p×q=3×11=33;f(n)=(p-1)(q-1)=2×10=20;取e=3(3与20互质),则e×d≡1 mod f(n),即3×d≡1 mod 20。d的取值可以用试算的办法来确定。试算结果如表3所示。 (编辑:平凉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
