信息安全导论课程-ch13-数字签名和认证协议

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

B密码编码学与网络安全电子工业出版社2006-2007B第13章数字签名和认证协议•13.1数字签名↓*13.aPKCS#1↓*13.bRSA签名示例(inOpenSSL)↓*13.cElGamal签名方案↓•13.3数字签名标准DSS↓•13.2认证协议↓*13.d专题讨论↓B为了承诺•数字签名是密码学发展过程中的最重要的概念之一。数字签名可以提供其他方法难以实现的安全特性,即抗抵赖。B数字签名DigitalSignature•加密•报文鉴别•数字签名–抵制通信双方的抵赖–对方(自己)否认发送过或收到过某个报文–向对方表明自己的身份B13.1数字签名•消息认证基于共享秘密,不能防止抵赖–只是2方合作抵抗第3方窜改/假冒•共享的秘密不具有排他性质–双方有同样的不分彼此地能力;因此对某个报文的存在和有效性,每一方都不能证明是自己所为,或者是和自己无关•特异性–要想实现类似签名的安全能力,必须使每个人使用独有的秘密B考察手写签名的特性•签名的含义–签名者慎重表达认可文件内容的意向的行为•主要形式–手写签名、签章、手指纹印(其他生物技术)•特性–不可伪造,特异性–不可重用,日期和时间相关性–不可改变,能发现涂改、转移意义或用途–不可抵赖,能够质证–可仲裁的,可做为法律证据B引用•第40页:密码故事(thecodebook)B数字签名:要适应的新变化•数字签名手写签名–数字文件纸版文件–数字小文件手写字(签章)–如何绑定?同一页纸•关于扫描手写字迹、鼠标手写–No!B手写签名的数字化改造•数学支持:签名函数–被签署的是文件(大文件)–签名生成另外一个文件(小文件)–签名过程一定有签署人的身份和某种秘密(别人不知的)参与–简单易行计算/存储B签名验证操作抽象图•签名•验证签名函数报文(大)报文签名(小)秘密报文签名验证函数身份是否身份B用私钥加密当作签名•主要操作–输入报文明文、私钥m^d=s–输出报文明文、报文密文(签名)(m,s)–验证s^e=?m•是否满足签名要求的特性–不可伪造–不可改变–抗抵赖B散列||签名•讨论–私钥(其实是公钥)的管理:和身份绑定、更新等–签名过程太慢:启用散列函数•改进–对报文的散列值用私钥加密得到和n等宽的签名值B无中心数字签名•直接使用自己的私钥加密作为签名–无中心•存在问题–声称私钥被偷窃而抵赖。虽然可以给报文添加时间戳,并要求用户必须及时挂失私钥,但是盗用者仍可以伪造较早期的签名。•引入中心可以有很多优点,同时也很多缺点。B有信任中心帮助的签名•优点:可以简化用户的考虑,甚至可以使用对称算法缺点:中心的安全故障、在线瓶颈、可靠性等问题B13.aPKCS#1v2.1Outline•RSApublickey:(n,e)•RSAprivatekey:(n,d)ed≡1modλ(n)其中λ是n的(素因子-1)的LCM•I2OSP(Integer-to-Octet-Stringprimitive)给定正整数x,输出字节串X=X1X2X3…x=2560X1+2561X2+2562X3+…•OS2IP(Octet-String-to-Integerprimitive)输入字节串,返回整数值BRSAPrimitive•RSAEP((n,e),m)c=memodn•RSADP((n,d),c)m=cdmodn•RSASP1((n,d),m)s=mdmodn•RSAVP1((n,e),s)m=semodnBEncryptionSchemes•ESRSAES-OAEP(OptimalAsymmetricEncryptionPadding)•new,recommendedRSAES-PKCS1-v1_5•obsolete•RSAES-OAEPEME-OAEP+RSAEP/RSADP•RSAES-PKCS1-v1_5EME-PKCS1-v1_5+RSAEP/RSADPBRSAES-OAEP•RSAES-OAEP-ENCRYPT((n,e),M,L)–Option:HashofhLen-byte–MGFmaskgenerationfunction(output,anoctetstring)–mLen=k-2hLen-2–Loptionallabeltobeassociatedwiththemessage•|L|=2^61-1octetsforSHA-1–EME-OAEPencoding•EM=0x00||maskedSeed||maskedDB–m=OS2IP(EM)–c=RSAEP((n,e),m)–C=I2OSP(c,k)•RSAES-OAEP-DECRYPT(K=(n,d),C,L)BEME-OAEPencodingoperationPSlHashMseedDB=EM=a’MGF’MGF0000maskedSeedmaskedDBBRSAES-PKCS1-v1_5•RSAES-PKCS1-V1_5-ENCRYPT((n,e),M)–mLen=k–11–PS是k-mLen-3字节(至少8字节)伪随机数–EM=0x00||0x02||PS||0x00||M–m=OS2IP(EM)–c=RSAEP((n,e),m)–C=I2OSP(c,k)•RSAES-PKCS1-V1_5-DECRYPT((n,d),C)BSignatureschemeswithappendix•SSRSASSA-PSS(ProbabilisticSignatureScheme)•new,recommendedRSASSA-PKCS1-v1_5•obsolete•RSASSA-PSSEMSA-PSS+RSASP1/RSAVP1•RSASSA-PKCS1-v1_5EMSA-PKCS1-v1_5+RSASP1/RSAVP1BRSASSA-PSS•RSASSA-PSS-SIGN(K=(n,d),M)–EM=EMSA-PSS-ENCODE(M,modBits–1)–m=OS2IP(EM)–s=RSASP1(K,m)–S=I2OSP(s,k)•RSASSA-PSS-VERIFY((n,e),M,S)BRSASSA-PKCS1-v1_5•RSASSA-PKCS1-V1_5-SIGN(K=(n,d),M)–EM=EMSA-PKCS1-V1_5-ENCODE(M,k)–m=OS2IP(EM)–s=RSASP1(K,m)–S=I2OSP(s,k)•RSASSA-PKCS1-V1_5-VERIFY((n,e),M,S)BEncodingmethodsforsignatureswithappendix•EM–EMSA-PSS–EMSA-PKCS1-v1_5•EMSA-PSS–EMSA-PSS-ENCODE(M,emBits)–EMSA-PSS-VERIFY(M,EM,emBits)•EMSA-PKCS1-v1_5–EMSA-PKCS1-v1_5-ENCODE(M,emLen)BEMSA-PSSencodingoperationbcpadding2maskedDBMMpadding1mHashsaltsaltH’MGFM’=DB=EM=aHashHashBEMSA-PKCS1-v1_5•EMSA-PKCS1-v1_5-ENCODE(M,emLen)–Option:HashofhLen-byte–emLenatleasttLen+11–H=Hash(M)–T=HashID+H(ASN.1编码)•DigestInfo::=SEQUENCE{digestAlgorithmAlgorithmIdentifier,digestOCTETSTRING}–PS:emLen-tLen-3(8+B)octetswithvalue0xff–EM=0x00||0x01||PS||0x00||TB对HASH的ASN.1编码(inEMSA-PKCS1-v1_5)•MD2reflayman’sguide3020300c06082a864886f70d020205000410||H•MD53020300c06082a864886f70d020505000410||H•SHA-13021300906052b0e03021a05000414||H•SHA-2563031300d060960864801650304020105000420||H•SHA-3843041300d060960864801650304020205000430||H•SHA-5123051300d060960864801650304020305000440||HBReading•ALayman'sGuide–toaSubsetofASN.1,BER,andDER–•PKCS#1andmore––•ASN.1inOpenSSL–#opensslasn1parseB13.bRSA签名示例用OpenSSL函数签名的例子•读入或产生RSA的key•签署一个报文•验证之demo_sign,v2.zipBRSA四种操作总结•公钥加密RSA_public_encrypt()•私钥解密RSA_private_decrypt()•私钥加密RSA_private_encrypt()•公钥解密RSA_public_decrypt()•签名RSA_sign()(私钥加密)•验证RSA_verify()(公钥解密)B{回顾ElGamal加密体制}•准备–素数p,Zp*中本原元g,公开参数–私钥a,公钥b=gamodp•加密–对明文1=m=p-1,选随机数k–密文(c1,c2)c1=gkmodp,c2=mbkmodp•解密–m=c2(c1a)-1=mbk((gk)a)-1=m(ga)k(g-ka)=mmodpB13.cElGamal签名方案•Zp满足离散对数问题难解,α是生成元设P=Zp*,A=Zp*×Zp-1K={(p,α,a,β),β=αa(modp)}私钥是a•签名时,取秘密随机数k∈Zp-1*,定义sig(x,k)=(γ,δ),=(αkmodp,(x-aγ)k-1mod(p-1))•验证ver(x,(γ,δ)):βγγδ=?αxmodpB验证正确性证明•如果(x,γ,δ)是真实签名βγγδ=αaγαkδ=αaγ+kδ而δ=(x-aγ)k-1modΦ(p)即aγ=x-kδmodΦ(p)故βγγδ=αnΦ(p)+x-kδ+kδ=αnΦ(p)+x=αnΦ(p)αx=αxmodp•其实δ就是签名时从kδ+aγ=x解出来得B签名计算实例•p=467,α=2,a=127,则β=αamodp=2127mod467=132•签名x=100,取k=213(注:k得和p-1互素),则k-1=213-1mod466=431γ=αkmodp=2213mod467=29δ=(x-aγ)k-1modΦ(p)=(100-127×29)×431mod466=51签名值:(100,(29,51))B验证计算实例•p=467,α=2,a=127,β=132(x,(γ,δ))=(100,(29,51))•判断是否:βγγδ=αxmodp事实上βγγδ=13229×2951=189mod467αx=2100=189mod467•而且,如果(100,(29,51))的任何改变都会导致验证失败BSubjectlinks•DSS/DSA–FIPS186•P1363–数字签名标准•DigitalSignatureStandard(DSS)DigitalSignatureAlgorithm(DSA)•DSS标准-DSA–FIPS186NIST19911993–只能签名,不能加密•概念对比RSA:M+Eki(H(M)),ki是私钥D

1 / 63
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功