往年考点
Hill密码 -------
题目
1.(10分)已知Hill密码下面的加密方程组,
Y1= 4X1+7X2 mod 31 ①
Y2=5X1+11X2 mod 31 ②
(1)求解密方程组(5分);
(2)解密密文(24,16)(5分)。
答案
解:(1) 求解密方程组:
①*11-②*7消除X2得9X1=11Y1-7Y2 mod31,9-1mod31=7,所以两端同时乘以7可得 X1=15Y1+13Y2 mod31;
①*5-②*4消除X1得9X2=-5Y1+4Y2 mod31,9-1mod31=7,所以两端同时乘以7可得 X2=27Y1+28Y2 mod31;即解密方程组为
X1=15Y1+13Y2 mod31
X2=27Y1+28Y2 mod31
(2)把Y1=24,Y2=16带入上述解密方程组得X1=10,X2=11。
仿射密码算法 -------
题目
1. 使用仿射密码算法对信息“hlzb l slqfb tpnywbotalojb”进行解密,已知
,
。
。(10分)
答案
解: 解密算法为D(x)=(x -
) /
mod 26=(7-3x)mod26
信息“hlzb l slqfb tpnywbotalojb”对应的数字密文为
“7,11,25,1,11,18,11,16,5,1,19,15,13,24,22,1,14,19,0,11,14,9,1”
经过解密运算后对应的数字明文为
“12,0,10,4,0,5,0,11,18,4,2,14,20,13,19,4,17,2,7,0,17,6,4”
还原出英文明文为
“make a false countercharge ”。
换位密码 -------
题目
2.(10分)已知换位密码的换位表为:(2,3,1,4),试:
(1) 对明文software加密(5分)。
(2) 如果已知cseutriy是上述换位密码加密后的密文,对其解密(5分)。
答案
(1)换位表长度为4,故周期为4,将明文按4位一组分为两组:
soft ware
soft换位后为:fsot,ware换位后为:rwae
加密后的结果为fsotrwae
结果也可以是ofstarwe
(2)按照逆换位工程,解密换位表为:(3,1,2,4)
所以cseutriy解密后明文为security
或解密为ecsuitry
AES加密 -------
题目
2. AES加密过程中某圈的数据块为EA04658583455D965C3398B0F02DADC5(128bit),求该数据库经过非线性代替(S-盒)后的输出。(10分)
答案
解:查表得:
EA->87,04->F2,65->4D,85->97;
83->EC,45->6E,5D->4C,96->90;
5C->4A,33->C3,98->46,B0->E7;
F0->8C,2D->D8,AD->95,C5->A6;
从而输出为
87F24D97EC6E4C904AC346E78CD895A6
RSA算法
题目1
答案
题目2
3. 已知RSA密码体制中,已知p=23,q=31,私钥d= 569,试求加密密钥e,且对明文M = 25进行加密。(10分)
答案
椭圆曲线
题目1

答案

题目2

答案

IDEA -------
题目
5.(15分)IDEA是一个分组密码,和DES类似,使用混乱和扩散技术,其明文块64位,密钥128位。以IDEA为例:
(1)(6分)画出分组密码的密码分组链接(CBC)模式的加密和解密示意图。
(2)(5分)假设加密时明文一个比特错误,对密文造成什么影响?
(3)(4分)接上问,对接收方解密会造成什么影响?
答案

高级数据加密标准AES -------
题目
5.高级数据加密标准AES是一个分组密码,以AES为例:
(1)画出分组密码的密码反馈(CFB)模式的加密和解密示意图。(6分)
(2)假设加密某个明文块时出现一个比特错误(比如明文输入时一个比特读错了),对解密造成什么影响?(5分)
(3)假设密文传输时出现一个比特错误,对解密造成什么影响?(4分)
答案
RSA
题目
(1)分析该方案存在的安全问题(10分);
(2)(5分)针对存在的安全问题,给出一种可行的改进方案,并画出如上图类似的示意图?
(3)(5分)该方案只具有数字签名功能,如果还需要对原文进行保密,请使用RSA设计一个既有数字签名又有保密功能的方案,并画过程出示意图。
答案


双通匿名密钥确认密钥协议
题目

答案

Feige-Fiat-Shamir身份验证方案
题目
7.(20分)身份验证总是基于某种收发双方共享的保密数据来认证对象的真实性。
(1)(10分)给出Feige-Fiat-Shamir身份验证方案。
(2)(5分)你认为该方法在应用中存在哪些安全问题?
(3)(5分)如何解决上述应用中的问题?给出建议或方案。
答案(ChatGPT)
(1)Feige-Fiat-Shamir 身份验证方案
Feige-Fiat-Shamir (FFS) 是一种基于公钥密码学的零知识证明身份验证协议,其基本步骤如下:
密钥生成:
- 用户选择一个秘密密钥 sss(模 NNN 的平方根),满足 gcd(s,N)=1gcd(s, N) = 1gcd(s,N)=1。
- 用户计算公钥 v=s2mod Nv = s^2 \mod Nv=s2modN,并将 vvv 作为公开信息。
身份验证过程:
- 承诺阶段: 用户选择一个随机数 rrr(模 NNN 的整数),计算承诺 x=r2mod Nx = r^2 \mod Nx=r2modN,并将 xxx 发送给验证者。
- 挑战阶段: 验证者发送一个随机位 e∈{0,1}e \in \{0, 1\}e∈{0,1} 作为挑战。
- 响应阶段: 用户根据 eee 计算响应:
- 如果 e=0e = 0e=0,则响应 y=ry = ry=r;
- 如果 e=1e = 1e=1,则响应 y=r⋅smod Ny = r \cdot s \mod Ny=r⋅smodN。
- 验证阶段: 验证者检查:
- 如果 e=0e = 0e=0,验证 y2≡xmod Ny^2 \equiv x \mod Ny2≡xmodN;
- 如果 e=1e = 1e=1,验证 y2≡x⋅vmod Ny^2 \equiv x \cdot v \mod Ny2≡x⋅vmodN。
验证通过即证明用户知道 sss 而不泄露其具体值。
(2)该方法在应用中存在哪些安全问题?
重放攻击: 如果攻击者拦截了合法用户与验证者的交互信息(如 x,yx, yx,y),可能尝试在后续会话中重放这些数据以冒充合法用户。
量子计算威胁: FFS 协议基于整数分解难题,而量子计算机可能通过 Shor 算法有效破解这种问题。
参数选择问题: 若模数 NNN 选取不当(如过小或非强素数乘积),可能导致攻击者通过暴力破解 sss 或伪造身份。
(3)解决上述应用中的问题的建议或方案
防止重放攻击:
- 使用时间戳或会话标识(Nonce)确保每次交互的唯一性,防止攻击者重放先前的消息。
- 在协议中引入基于挑战的动态认证。
抗量子安全增强:
- 结合抗量子密码学算法(如基于格理论或哈希的零知识证明协议)取代传统整数分解问题。
改进参数选择:
- 确保模数 NNN 是两个大素数的乘积,且位长足够大(如 2048 位以上)。
- 严格控制密钥长度和随机数生成器质量,避免预测性或弱随机性问题。
通过这些改进,可以显著提高 Feige-Fiat-Shamir 协议的安全性,适应现代实际应用需求。
题目2
7.(20分)在简化的Feige-Fiat-Shamir身份验证方案中,如果 n = 77,公开密钥为 60。
(1)试计算出私钥;(5分)
(2)甲方选择的随机数为21,乙方回复的随机位为1,试补充该协议一圈的过程;(5分)
(3)试分析该协议中甲能欺骗乙一次的机会为50%?(10分)
答案

(3)分析甲方欺骗乙方一次的机会为 50%
零知识证明的性质: FFS 协议的零知识特性要求甲方可以通过 rrr 选择来正确响应乙方的挑战 eee,而无需泄露私钥 sss。
甲方欺骗的条件: 如果甲方不掌握私钥 sss,则其无法根据 rrr 和 sss 计算响应 yyy。甲方只能随机猜测 yyy 的值,以期满足验证条件。
乙方验证条件: 乙方的验证条件是:
- 若 e=0e = 0e=0,验证 y2≡xmod ny^2 \equiv x \mod ny2≡xmodn;
- 若 e=1e = 1e=1,验证 y2≡x⋅vmod ny^2 \equiv x \cdot v \mod ny2≡x⋅vmodn。
因为 eee 是随机的 0 或 1,甲方事先无法知道 eee 的值。
成功的概率: 对于随机猜测的 yyy,满足乙方验证条件的概率是 50%,因为 eee 有两个可能值,而甲方可以随机选择一个 yyy 满足其中一种验证条件。
因此,甲方在没有私钥的情况下,欺骗乙方一次的机会为 50%,但多次交互中欺骗成功的概率将指数级降低。
知识点
RSA

数学基础
最大公因数-辗转相除
广义欧几里得算法
乘法逆元
中国剩余定理
Blum整数





1万+

被折叠的 条评论
为什么被折叠?



