【密码学——基础理论与应用】李子臣编著 第七章 公钥密码 课后习题

免责声明

这里都是自己搓或者手写的。

里面不少题目感觉有问题或者我的理解有偏颇,请大佬批评指正!

不带思考抄作业的请自动退出,我的并非全对,仅仅提供思维!

这是我之前写过的文章:

RSA密码体制的数学基础及其基本概念_rsa的数学基础-CSDN博客
RSA题型总结大(不)全-CSDN博客
RSA解密常用python脚本_rsa解密脚本-CSDN博客

题目

逐题解析

7.1

多停留一秒都是对时间的浪费,直接上脚本秒

d=937 c=95 m=1520

python 复制代码
import gmpy2#函数库
from Crypto.Util.number import long_to_bytes
e = 13
m = 1520
p = 43
q = 59
n = p*q
fai = (p-1)*(q-1)
d = gmpy2.invert(e,fai) #invert函数求逆元
print(d)
c = pow(m,e,n)
print(c)
m = pow(c,d,n)
print(m)

7.2

经典的共模攻击问题,不懂查我上面给的参考文献或者查书P125。

方程e1*x+e2*y的解为(3,-2),那么m=(c1^3)*(c2^-2)%n,其中c2要先算逆(得41)再平方。

结果m=13。

python 复制代码
import gmpy2 # 函数库
e1 = 5
e2 = 7
c1 = 27
c2 = 55
n = 161
a,x,y=gmpy2.gcdext(e1,e2)
print(a,x,y)
t1 = pow(c1,x,n)
t2 = pow(c2,y,n)
print(t1,t2)
m = pow(t1*t2,1,n)
print(m)

7.3

解:(1)不采用试除,也就是我们要用"化劲"解出pq。给了n和φ,那么我们可以知道:

,得p+q=32

故转为解方程 (不懂请回忆韦达定理),得到p=13,q=19,顺序可反。

(2)(3)脚本速通 d=47,m=147。

python 复制代码
import gmpy2 # 函数库
p = 13
q = 19
e = 23
n = p*q
l = (p-1)*(q-1)
d = gmpy2.invert(e,l)
print(d)
c = 10
m = pow(c,d,n)
print(m)

7.4(手写)

因为7.4-7.6是作业,所以直接放手稿了

其实逆元除了机算,还可以用扩展欧几里得算法手撕,自行领悟喽,有问题放评论区。

7.5(手写)

7.6(手写)

7.7

私钥是5,明文是5。

python 复制代码
import gmpy2 # 函数库
p = 5
q = 7
e = 5
n = p*q
l = (p-1)*(q-1)
d = gmpy2.invert(e,l)
print(d)
c = 10
m = pow(c,d,n)
print(m)

7.8

答:不安全。攻击者泄露了d之后,p,q,φ都容易被计算出来,更换了e为e',但是一旦知道了φ,那么新的私钥d'也容易被计算出来。

7.9

我能想到的就是p=5,q=7,φ=24。代入e*d=1+kφ,好像还真的全部成立,但是我不会证明。

参考答案直接给你来暴力,挺无语

7.10

我放弃理解这题,自己看吧

7.11

这题To my surprise,老师的参考答案不会做!这不就是泄露dq型的推导吗?

突然觉得自己邮电厉害,嘻嘻。

相关推荐
MQLYES1 天前
02-BTC-密码学原理
区块链·密码学·哈希算法
小李独爱秋4 天前
计算机网络经典问题透视:不重数(Nonce)是否就是随机数?一场深入骨髓的密码学思辨
服务器·网络·计算机网络·安全·web安全·密码学
kp000004 天前
SM系列国密算法全面对比与解析
网络安全·信息安全·密码学·国密·sm加密
Wcowin5 天前
非对称密码
网络·密码学
一个平凡而乐于分享的小比特6 天前
OpenSSL 全面解析:从入门到精通
密码学·openssl·隐私安全
缘友一世6 天前
现代密码学【8】之基于随机预言机模型的公钥密码系统
密码学
咸鱼菲菲6 天前
KhPRF介绍
安全·密码学·同态加密
一个平凡而乐于分享的小比特7 天前
公钥与私钥完全解析:数字世界的钥匙与锁
操作系统·密码学·公钥与私钥·隐私安全
print_Hyon7 天前
【CTF-密码学-RSA】计算私钥和公钥进行加密和解密
密码学·ctf
小李独爱秋7 天前
计算机网络经典问题透视:常规密钥体制与公钥体制最主要的区别是什么?—— 一文带你从“钥匙”看懂现代密码学核心
服务器·网络·tcp/ip·计算机网络·密码学