1、因此对某个报文的存在和有效性,每一方都不能证明是自己所为,或者是和自己无关特异性要想实现类似签名的安全能力,必须使每个人使用独有的秘密B考察手写签名的特性签名的含义签名者慎重表达认可文件内容的意向的行为主要形式手写签名、签章、手指纹印(其他生物技术)特性不可伪造,特异性不可重用,日期和时间相关性不可改变,能发现涂改、转移意义或用途不可抵赖,能够质证可仲裁的,可做为法律证据B引用第40页:密码故事(the code book)B数字签名:要适应的新变化数字签名手写签名数字文件纸版文件数字小文件手写字(签章)如何绑定?同一页纸关于扫描手写字迹、鼠标手写No!B手写签名的数字化改造数学支持:签名函数
2、被签署的是文件(大文件)签名生成另外一个文件(小文件)签名过程一定有签署人的身份和某种秘密(别人不知的)参与简单易行计算/存储B签名验证操作抽象图签名验证签名函数报文(大)报文签名(小)秘密秘密报文签名验证函数身份是否身份B用私钥加密当作签名主要操作输入 报文明文、私钥md=s输出 报文明文、报文密文(签名)(m,s)验证se=?m是否满足签名要求的特性不可伪造不可改变抗抵赖B散列|签名讨论私钥(其实是公钥)的管理:和身份绑定、更新等签名过程太慢:启用散列函数改进对报文的散列值用私钥加密得到和n等宽的签名值B无中心数字签名直接使用自己的私钥加密作为签名无中心存在问题声称私钥被偷窃而抵赖。虽然可
3、以给报文添加时间戳,并要求用户必须及时挂失私钥,但是盗用者仍可以伪造较早期的签名。引入中心可以有很多优点,同时也很多缺点。B有信任中心帮助的签名优点:可以简化用户的考虑,甚至可以使用对称算法缺点:中心的安全故障、在线瓶颈、可靠性等问题B13.a PKCS#1v2.1 OutlineRSA public key:(n,e)RSA private key:(n,d)ed1 mod(n)其中是n的(素因子-1)的LCMI2OSP(Integer-to-Octet-String primitive)给定正整数x,输出字节串X=X1X2X3x2560X12561X22562X3OS2IP(Octet-S
4、tring-to-Integer primitive)输入字节串,返回整数值BRSA PrimitiveRSAEP(n,e),m)c=me mod nRSADP(n,d),c)m=cd mod nRSASP1(n,d),m)s=md mod nRSAVP1(n,e),s)m=se mod nBEncryption SchemesESRSAES-OAEP(Optimal Asymmetric Encryption Padding)new,recommendedRSAES-PKCS1-v1_5obsoleteRSAES-OAEPEME-OAEPRSAEP/RSADPRSAES-PKCS1-v1_5
5、EME-PKCS1-v1_5RSAEP/RSADPBRSAES-OAEPRSAES-OAEP-ENCRYPT(n,e),M,L)Option:Hash of hLen-byteMGF mask generation function(output,an octet string)mLen=k-2hLen-2L optional label to be associated with the message|L|=261-1 octets for SHA-1EME-OAEP encodingEM=0 x00|maskedSeed|maskedDBm=OS2IP(EM)c=RSAEP(n,e),m
6、)C=I2OSP(c,k)RSAES-OAEP-DECRYPT(K(n,d),C,L)BEME-OAEP encoding operation BRSAES-PKCS1-v1_5RSAES-PKCS1-V1_5-ENCRYPT(n,e),M)mLen=k 11 PS是k-mLen-3字节(至少8字节)伪随机数 EM=0 x00|0 x02|PS|0 x00|M m=OS2IP(EM)c =RSAEP(n,e),m)C=I2OSP(c,k)RSAES-PKCS1-V1_5-DECRYPT(n,d),C)BSignature schemes with appendixSSRSASSA-PSS(Pr
7、obabilistic Signature Scheme)new,recommendedRSASSA-PKCS1-v1_5 obsoleteRSASSA-PSSEMSA-PSSRSASP1/RSAVP1RSASSA-PKCS1-v1_5EMSA-PKCS1-v1_5RSASP1/RSAVP1BRSASSA-PSSRSASSA-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_5RSAS
8、SA-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)BEncoding methods for signatureswith appendixEMEMSA-PSSEMSA-PKCS1-v1_5EMSA-PSSEMSA-PSS-ENCODE(M,emBits)EMSA-PSS-VERIFY(M,EM,emBits)EMSA-PKCS1-v1_5EMSA-PKCS1-v1_5-ENCODE(M,
9、emLen)BEMSA-PSS encoding operationBEMSA-PKCS1-v1_5EMSA-PKCS1-v1_5-ENCODE(M,emLen)Option:Hash of hLen-byteemLen at least tLen+11H=Hash(M)T=HashIDH (ASN.1编码)DigestInfo:=SEQUENCE digestAlgorithm AlgorithmIdentifier,digest OCTET STRING PS:emLen-tLen-3(8+B)octets with value 0 xffEM=0 x00|0 x01|PS|0 x00|T
10、 B对HASH的ASN.1编码(in EMSA-PKCS1-v1_5)MD2ref laymans guide30 20 30 0c 06 08 2a 86 48 86 f7 0d 02 02 05 00 04 10|HMD530 20 30 0c 06 08 2a 86 48 86 f7 0d 02 05 05 00 04 10|HSHA-130 21 30 09 06 05 2b 0e 03 02 1a 05 00 04 14|HSHA-25630 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20|HSHA-38430 41 30
11、0d 06 09 60 86 48 01 65 03 04 02 02 05 00 04 30|HSHA-51230 51 30 0d 06 09 60 86 48 01 65 03 04 02 03 05 00 04 40|HBReadingA Laymans Guideto a Subset of ASN.1,BER,and DERftp:/ and morehttp:/ in OpenSSL#openssl asn1parseB13.b RSA签名示例用OpenSSL函数签名的例子读入或产生RSA的key 签署一个报文验证之BRSA四种操作总结公钥加密RSA_public_encrypt
12、()私钥解密RSA_private_decrypt()私钥加密RSA_private_encrypt()公钥解密RSA_public_decrypt()签名RSA_sign()(私钥加密)验证RSA_verify()(公钥解密)B 回顾ElGamal加密体制 准备素数p,Zp*中本原元g,公开参数私钥a,公钥b=ga mod p加密对明文1=m=p-1,选随机数k密文(c1,c2)c1=gk mod p,c2=mbk mod p解密mc2(c1a)-1mbk(gk)a)-1 m(ga)k(g-ka)m mod pB13.c ElGamal签名方案Zp满足离散对数问题难解,是生成元设P Zp*,
13、A Zp*Zp-1 K(p,a,),=a(mod p)私钥是a签名时,取秘密随机数kZp-1*,定义sig(x,k)=(,),(k mod p,(x-a)k-1 mod(p-1)验证 ver(x,(,):?x mod pB验证正确性证明如果(x,)是真实签名aka+k而 (x-a)k-1 mod(p)即 ax-k mod(p)故 n(p)+x-k+k n(p)+x n(p)x x mod p其实就是签名时从 kax解出来得B签名计算实例p467,2,a127,则a mod p 2127 mod 467 132签名x100,取k213(注:k得和p-1互素),则 k-1213-1 mod 466
14、=431k mod p 2213 mod 467 29(x-a)k-1 mod(p)(100-12729)431 mod 466 51 签名值:(100,(29,51)B验证计算实例p467,2,a127,132(x,(,)(100,(29,51)判断是否:x mod p 事实上132292951189 mod 467x2100189 mod 467而且,如果(100,(29,51)的任何改变都会导致验证失败BSubject linksDSS/DSAFIPS 186P1363http:/grouper.ieee.org/groups/1363/B13.3 数字签名标准Digital Signa
15、ture Standard(DSS)Digital Signature Algorithm(DSA)DSS标准DSAFIPS 186 NIST 1991 1993只能签名,不能加密概念对比RSA:MEki(H(M),ki是私钥DSS:MEki(H(M),k),ki是私钥 k是随机数B图示 RSA vs.DSS BDSA准备素数p,约512比特;素数q,约160比特,要求是p-1的因子选择gh(p-1/q)mod p密钥用户私钥x,xK IDa|IDb|Na2 AB Ekb(Ks|IDa)4 AB Eks(f(Nb)缺点若对手已知某旧的Ks,则其可从第3步开始模仿A改进Denning KehneBNeedham-Schroeder协议NS协议是最著名的早期协议NSSK-Needham Schroeder Symmetric KeyNSPK-Needham-Schroeder Public KeyBDenning1 A K IDa|IDb2 AB Ekb(Ks|IDa|T)4 AB Eks(f(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1