PGP数字签字
日期:2010年9月15日 姓名:张三
地点:现代教育中心XXX 同组同学:李四、王五
实验环境:Windows XP Professional Edition, PGP for Windows V.8.0.2
[实验目标]
[实验原理]
1、 RSA签字体系
选定两个大素数p、q,计算n=pq及φ(n)=(p-1)(q-1); 选取[1, φ(n)]间与φ(n)互素的元素e,计算d=e-1modφ(n) 销毁p和q,d作为签字私钥,而n和e作为验证公钥; 签字过程:y=x mod n,其中x为被签字的文件; 验证过程:根据欧拉定理:x=ymod n=xmod n=x2、 签字及验证过程
明文
明文 d
de
qφ(n)+1
e
借助PGP软件实现对文件的数字签字并进行签字验证。
mod n=x。
杂凑运算 签字运算 签字 签字方 签字私钥
传输信道 签字 验证方 杂凑值 杂凑运算 相同,签字有效
比较运算 验证运算 不同,签字无效
杂凑值 杂凑值 验证公钥
[实验步骤]
参考实验指导内容及具体实验过程,概述主要步骤即可,无需长篇大论及抓图; [实验结论]
借助PGP软件,成功地实现了对文件的数字签字并进行签字验证,
加深了对相关知识的理解和掌握。
[实验思考]
1、 可否直接对明文进行数字签字?比较两种方式的异同。
答:可以。明文签字相对于摘要签字更好地保持了签字与明文的不可分割性,避免了后者遭受生日攻击导致签字被假冒的风险;但另一方面当明文数据量较大时签字可能比较费时,而且有被骗签字的可能性。
2、 公钥加密和私钥签字可否使用相同的密钥对?为什么?
答:最好不要。因为RSA所采用的指数运算保持了输入的乘法结构,攻击者可能籍此精心构造选择明文攻击,导致破译密文消息、骗取签名等后果。
消息破译:攻击者收集密文y=xe mod n,并想分析出消息x。选随机数rmod n=yd mod n=x。3、 对不可阅读的文字进行签字有何安全隐患?
答:可能被骗签字,理由同上。不要为不相识的人签署随机文件,若有必要可以使用杂凑函数进行摘要签字。
骗取签字:攻击者希望A签署对其不利的文件x,可以先将x分解为两个明文:x=x1×x2,然后请A分别签署x1、x2,则有:x1d mod n × x2d mod n=(x1×x2)d mod n=xd mod n。