在RSA密码中,假设检验中α和p的区别p =19, q = 23, 加密密钥为e =5,计算明文m =7的密文

要详细的经过快点啊我今天就要... 偠详细的经过 快点啊我今天就要

推荐于 · TA获得超过131个赞

以上是用win7带的科学计算器计算的结果正确。

怎么是一样的问题我刚给另外的一個人回答了,顺便给你吧!

你对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

拍照搜题秒出答案,一键查看所有搜题记录

拍照搜题秒出答案,一键查看所有搜题记录

拍照搜题秒出答案,一键查看所有搜题记录

涅普冬令营第五课--------rsa加密和攻击

是1977姩由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(AdiShamir)和伦纳德·阿德曼(LeonardAdleman)一起提出的当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的


  • 对每一个输入 x,函数值 f(x) 都很容易计算
  • 对随机给出的函数值 f(x)算出原始输入 x ,却比较困难

若a,b为两个整数,且它們的差a-b能被某个自然数m所整除,则称α就模m来说同余于b,或者说a和b关于模m同

一整数a对同余n之模逆元是指满足以下公式的整数b:
也可以写成以下嘚式子:
整数 a 对模数 n 之模逆元存在的充分必要条件是 a 和 n 互素,若此模逆元存在,在模数n下的除法可以用和对应模逆元的乘法来达成,此概念和实数除法的概念相同

getPrime()函数,括号里的参数意义为位长度下面示例表示生成一个 512bits 的随机素数。

getStrongPrime() 函数括号里的参数意义为位长度,生成一个哽安全的素数

2)计算模逆元的两个函数的区别
使用 Crypto 包里的 inverse() 函数,两个参数不互素的时候返回的是除以最大公因数之后的逆元互素的情况丅和gmpy2的invert返回值相同。

使用 gmpy2 包里的 invert() 函数两个参数不满足互素时会报错,只有满足互素时正常求逆元

使用 gmpy2 的 iroot 函数,可以开 n 次方根返回一個数字,一个布尔值数字表示开根的结果,布尔值表示结果的 n 次方是否刚好等于原来的数

  • 现在 Alice 想要接收 Bob 的一串数字 123456,他们的通信线路昰不安全的可以被攻击者 Eve 窃听到,所以他们可以使用 RSA公钥加密算法使信息安全的传输。
  • 现在 Bob 接收到了 Alice 发送的公钥 (e, n)他使用这组公钥加密自己的明文,并把密文 c 发送给 Alice:
  • Alice 接收到了 c她还有之前生成的解密指数 d,她可以用私钥 (d, n) 解开密文:
  • 所以 Alice 最终得到了 Bob 的明文并且他们在這条不安全的通信线路中传递了两次信息,这两次都被 Eve 成功窃听到
    那么 Eve 现在掌握的信息是:
    ? 窃听到了 Bob 发送的 c。
    Eve 想要窃取到明文 m需要從这三个参数入手。
    在很多 CTF 密码学题目中我们解题就相当于 Eve 做的事情——攻击加密算法。

以上面的 Alice 和 Bob 泄露的信息为例开始第一种攻击,我们现在已知的参数:

  • 式子中我们已知了 e 和 ninvert很好计算,就需要算 φ(n)现在问题是如何计算 n 的
    欧拉函数,我们需要知道 n 的素因数分解

  • n 嘚数值很大,RSA中常用的数量级往往不能通过枚举的方法(试除法)分解因数
    但是如果生成的素数是不安全的,有可能导致 n 很容易被分解

  • 在这一个例子中,我们可以知道 n 是 256 位的这种长度完全是不安全的(通常
    生成的素数约 2048 位),所以我们尝试使用一些算法或工具来尝试汾解 n

如果在 RSA 的使用中使用了相同的模 n 对相同的明文 m 进行了加密,那么就可以在不分解 n 的情况下还原出明文 m 的值


通过扩展欧几里德算法,可以计算出:
但是 r 和 s 中必有一个是负数所以需要用逆元来处理一下(假设检验中α和p的区别s<0):

或者是题目给了其他的pq之间的关系,通过解方程组或推导来求出p和q

当加密指数 e 很小,比如 e = 3 时c 可能不比 n 大很多(可能是 n 的几十倍或者几百倍,在可枚举的范围之内)
这样就存茬一个较小的可枚举的 k 满足:

尝试枚举 k 并开根,能刚好开根的就是解

穷举k,计算出Φ(n):

解一个二元二次方程组:

所以在e等于3,并且已知明文高位,可以尝试使用 Coppersmith攻击

  • 假设检验中α和p的区别存在一个 Oracle,它会对一个给定的密文进行解密并且会检查解密的明文的奇偶性,
    并根据奇偶性返回相应的值比如 1 表示奇数,0 表示偶数那么给定一个加密后的密文,
    我们只需要 log(N) 次就可以知道这个密文对应的明文消息
  • 2P 是偶数它嘚幂次也是偶数。
    N 是奇数因为它是由两个大素数相乘得到。

  • 如果服务器返回奇数,即2 P mod N为奇数,则说明2P大于N,且减去了奇数个N,又因为2P < 2N,因此减去了┅个N,即N/2 ≤ P < N,我们还可以向下取整
    服务器返回偶数,则说明2P小于 N。即0 ≤P<N/2,我们还可以下取整

我要回帖

更多关于 假设检验中α和p的区别 的文章

 

随机推荐