您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 网络安全-12-数字签名
Chapter13数字签名《计算机与网络安全》2019/12/29西安电子科技大学计算机学院2数字签名RSA数字签名ElGamal数字签名Schnorr数字签名数字签名标准考察手写签名的特性•签名的含义–签名者慎重表达认可文件内容的意向的行为•主要形式–手写签名、签章、手指纹印(其他生物技术)•特性–不可伪造,特异性–不可重用,日期和时间相关性–不可改变,能发现涂改、转移意义或用途–不可抵赖,能够质证–可仲裁的,可做为法律证据手写签名的数字化改造•数学支持-签名函数–被签署的是文件(大文件)–签名生成另外一个文件(小文件)–签名过程一定有签署人的身份和某种秘密(别人不知的)参与–简单易行计算/存储签名函数报文(大)报文签名(小)身份和秘密用私钥加密当作签名•主要操作–输入报文明文、私钥–输出报文明文、报文密文(签名)–验证•是否满足签名要求的特性•讨论–私钥(其实是公钥)的管理:和身份绑定、更新等–签名过程太慢:启用散列函数数字签名的一般模型数字签名过程机制2019/12/29西安电子科技大学计算机学院8§13.1数字签名消息认证可以保护信息交换不受第三方的攻击,但不能处理通信双方自身发生的攻击。数字签名提供了这种能力:验证签名者、签名的日期和时间认证消息内容可由第三方仲裁,以解决争执因此,数字签名具有认证功能2019/12/29西安电子科技大学计算机学院9数字签名应满足的条件签名值必须依赖于所签的消息必须使用对于发送者唯一的信息以防止伪造和否认产生签名比较容易识别和验证签名比较容易伪造数字签名在计算上是不可行的。包括已知数字签名,伪造新的消息已知消息,伪造数字签名保存数字签名的拷贝是可行的2019/12/29西安电子科技大学计算机学院10直接数字签名只涉及收发双方假定接收方已知发送方的公钥发送方可以用自己的私钥对整个消息内容或消息内容的hash值进行加密,完成数字签名。可以用接收者的公钥来加密以提供保密性先签名后加密,很重要。缺点:安全性依赖于发送方私钥的安全性2019/12/29西安电子科技大学计算机学院11仲裁数字签名仲裁者A验证任何签名的消息给消息加上日期并发送给接收者需要对仲裁者有合适的信任级别即可在私钥体制中实现,又可在公钥体制中实现仲裁者可以或者不可以阅读消息13.2RSA签名体系RSA签名体系的消息空间和密文空间都是Zn={0,1,2,…,n−1},这里n=p×q。此签名体系是一种确定的数字签名体系。1.RSA签名体系的密钥产生每个实体A进行以下操作:(1)随机选择两个大素数p和q;(2)计算n=p×q和Φ(n)=(p−1)(q−1);(3)随即选择e,满足1<e<Φ(n),gcd(e,Φ(n))=1;(4)用欧几里得算法计算d,满足1<d<Φ(n),ed=1mod(n)。设A的公钥为(n,e),私钥为(n,d)。2.签名算法(1)计算s=mdmodn;(2)发送(m,s)。3.验证算法(1)计算m′=semodn;(2)验证m′是否等于m,若不等于,则拒绝;4.安全性分析如果攻击者能够进行模n的大整数分解,则它可计算Φ(n),从而利用欧几里得算法得到签名者的私钥。所以签名者必须小心地选择p和q。13.3ElGamal签名方案ElGamal签名是一种随机附属签名机制,它可以对任意长度的二进制消息格式进行签名。数字签名算法(DSA)是它的一种变种。举例:P287安全性分析2019/12/29西安电子科技大学计算机学院19*46712721311467,2127mod2mod467132,,,100213,(,1)(213,466)1mod2mod46729()mod1(10012729)213mod46651(51,29)100xkpxyppyxmkkprpsmxrkpB例:用户A选择素数是的生成元,选择计算公开,保密对消息签名选择是消息的签名用户用验证Z295111002100(51,29)mod13229mod467189mod2mod467189(51,29)100rsmAVyrpVp算法验证用户对消息的签名所以是消息的签名2019/12/29西安电子科技大学计算机学院20§13.4Schnorr数字签名ElGamal签名方案的另一个变种是Schnorr签名。和DSA一样,Schnorr签名也使用了上阶为q的循环子群。二者的密钥产生过程也极其相似,但Schnorr签名对p和q的大小没有限制。2019/12/29西安电子科技大学计算机学院21§13.5数字签名标准DigitalSignatureStandard(DSS)美国政府的签名方案由NIST和NSA,在20世纪90年代设计1991年,作为FIPS-186发布1993,1996,2000进行了修改采用SHAhash算法DSS是标准DSA算法。FIPS186-2(2000)包括可选的RSA和椭圆曲线签名算法2019/12/29西安电子科技大学计算机学院22DigitalSignatureAlgorithm(DSA)产生320bit的签名值可以提供512-1024bit的安全性比RSA小且快仅是一个数字签名方案(不能用于加密)安全性依赖于计算里算对数的困难性是ElGamal和Schnorr方案的变体2019/12/29西安电子科技大学计算机学院23DigitalSignatureAlgorithm(DSA)2019/12/29西安电子科技大学计算机学院24DSA密钥的生成全局公钥(p,q,g):选择q,位长为160bit选择一个大的素数p=2L其中L=512to1024bits且L是64的倍数q是(p-1)的素因子选择g=h(p-1)/qmodp其中hp-1,h(p-1)/q(modp)1用户选择私钥并计算对应的公钥:随机选择私钥0xq计算公钥y=gx(modp)2019/12/29西安电子科技大学计算机学院25DSA签名的生成为了对消息M进行签名,发送者:产生一个随机签名密钥k,kq注意k必须是一个随机数,用后就扔掉,不再使用。计算签名对:r=(gk(modp))(modq)s=(k-1H(M)+xr)(modq)和消息M一同发送签名值(r,s)2019/12/29西安电子科技大学计算机学院26DSA数字签名的验证已经收到消息M和签名值(r,s)为了验证签名,接收者计算:w=s-1(modq)u1=(wH(M))(modq)u2=(rw)(modq)v=(gu1yu2(modp))(modq)如果v=r则签名正确证明(略)2019/12/29西安电子科技大学计算机学院272019/12/29西安电子科技大学计算机学院28
本文标题:网络安全-12-数字签名
链接地址:https://www.777doc.com/doc-2343555 .html