三.利用公钥密码实现数字签名
2.利用ELGamal密码实现数字签名
(1)密钥选择
(2)产生签名
3.验证签名
(4)ELGamal密码签名的使用
3.利用椭圆曲线实现数字签名
(1)密钥选择
(2)产生签名
(3)验证签名
(4)椭圆曲线密码签名的应用
- 安全,密钥短,软硬件实现节省等特点。
- 2000年美国政府已经将椭圆曲线密码引入数字签名标准DSS。
- 中国也采用椭圆曲线密码签名。
4.中国的椭圆曲线数字签名方案
(1)用户A产生签名的算法
(2)验证签名的算法
(3)验证的正确性
补充知识:加密软件PGP
- PGP(Pretty Good Privacy)是一个广泛应用于电子邮件和其他文件加密的软件,推出后受到亿万用户的支持,已经称为电子邮件加密的事实上的标准。
- PGP软件功能强大,速度快,而且源代码全免费,使用方便(它把整个加密技术交给用户)。
- PGP不但可以对用户的邮箱保密,以防止非授权者阅读,还能对邮件加上数字签名让收信人确信邮件未被第三者篡改,让人们可以安全地通信。
- 数据的加密主要使用了IDEA算法(因为它速度快,安全性好);使用RSA算法对IDEA的密钥加密(因为RSA公钥加密算法的密钥管理方便)。这样,两类体制的算法结合到一起,扬长避短,各尽其能。
- PGP还可以只签名而不加密。这适用于用户发布信息的情况。用户为了证实自己的身份,在发送信件时用自己的私钥签名。这样就可以让收件人能确认发件人的身份,也可以防止发件人抵赖自己的声明。这一点在商业领域有很大的应用前途,它可以防止发件人抵赖和信件被途中篡改。
- PGP给邮件加密和签名的过程是这样的:首先甲用自己的私钥将由MD5算法得到的128位的“邮件摘要”加密(即签名),附加在邮件后。再用乙的公钥将整个邮件加密(要注意这里的次序,如果先加密再签名,别人可以将签名去掉后签上自己的名字,从而篡改了签名)。
- 这样这份密文被乙收到之后,乙用自己的私钥将邮件解密,得到甲的原文和签名;乙也利用MD5算法从原文计算出一个128位的特征值,再将其与用甲的公钥解密签名所得到的数据进行比较。如果比较相符,则说明这份邮件确实是甲寄发的。这样,保密性和认证性要求都得到了满足。
- PGP除了提供数据加密和数字签名服务外,还提供数据压缩和数据转换服务,这些服务都是与信息和文件格式相关的。
- PGP在数字签名和加密服务之间提供压缩服务,即PGP先对信息进行签名,然后再进行压缩,最后再对压缩的信息进行加密。
- PGP在加密数据之前先对其进行预压缩处理,PGP内核使用PKZIP算法来压缩加密前的明文。一方面压缩后加密使得密文更短,可节省了网路传输的时间。另一方面,明文经过压缩实际上相当于一次变换,信息更加杂乱无章,对明文攻击的抵御能力更强。
- 公用密钥的传送:对于PGP来说,公钥本来就是公开的,不存在安全问题,但是公钥在发布中仍然存在安全性问题,其中最大的漏洞就是公用密钥被篡改和冒充。
- PGP的解决方案是采用CA认证,每个由其签名的公钥都被视为是真的。
- PGP私有密钥的管理:私钥相对于公钥而言不存在被篡改的问题,但是却存在泄露的问题。对此,PGP的办法是让用户为随机生成的PSA私钥指定一个口令,只有通过给出口令才能将私钥释放出来使用。用口令加密私钥的加密程序与PGP本身是一样的。所以,私钥的安全性问题实际上是对用户口令的保密。
- 格式转换服务:使用PGP时,传送的消息通常是部分加密的,如果只是用数字签名服务,则消息的摘要是加密的;如果使用了数据加密服务,则消息和签名都是加密的。这样,部分或者全部的结果都将由任意的8位字节流组成,而很多电子邮件只允许使用纯ASCII文本。为了使用这种限制,PGP提供了将原始的8位数据流转换为ASCII字符串的服务。
简要的过程如图:
四.盲签名
- 在普通数字签名中,签名者总是先知道数据的内容后才实施签名,这是通常的办公事务所需要的。但有时却需要某个人对某数据签名,而又不能让他知道数据的内容。称这种签名为盲签名(Blind Signature)。在无记名投票选举和数字货币系统中往往需要这种盲签名。
- 盲签名在电子商务和电子政务系统中有着广泛的应用。
盲签名与普通签名相比有着两个显著的特点:
- 签名者不知道所签署的数据内容;
- 在签名被接收者泄露后,签名者不能追踪签名。即:如果把签名的数据给签名者看,他确信是自己的签名,但是他无法知道什么时候对什么样的盲数据施加签名而得到此签名数据。
盲签名的技术思想
- 接收者首先将待签数据进行盲变换,把变换后的盲数据发送给签名者。
- 经签名者签名后再发给接收者。
- 接收者对签名再作去盲变换,得出的便是签名者对原数据的盲签名。
- 这样便满足了条件1,要满足条件2,必须使签名者事后看到盲签名时不能与盲数据联系起来,这通常是依靠某种协议来实现的。
盲签名原理图:
1.RSA盲签名
- 盲签名在某种程度上保护了参与者的利益,但不幸的是盲签名的匿名性可能被犯罪分子所滥用。为了阻止这种滥用,人们又引入了公平盲签名的概念。公平盲签名比盲签名增加了一个特性,即建立一个可信中心,通过可信中心的授权,签名者可追踪签名。
2.双联签名
- 双联签名是实现盲签名的一种变通方法。它利用协议和密码将消息与人关联起来而并不需要知道消息的内容。从而实现盲签名。
- 双联签名采用单向HASH函数和数字签名技术相结合,实现盲签名的两个特性。