- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.4 背包密码体制 A=(a1,a2,…,an)— 背包向量 S—背包的容积 背包问题:从A中找出ai,使其和等于s。 例 A=(43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523),s=3231。 由于3231=129+473+903+561+1165 该背包问题的解129、473、903、561、1165。 陷门单向函数 f(x)=A·x A:背包向量(a1,a2,…,an) x:x的二元表示列向量 f(1)=f(0…001)=an f(2)=f(0…010)=an-1 f(3)=f(0…011)=an-1+an f(2n-1)=f(1…111)=a1+a2+…+an 超递增背包 向量A=(a1,a2,…,an) 背包密码体制 公开钥:一般背包向量B =(b1,b2,…,bn),满足 bi≡t·ai mod k, 私钥:超递增背包向量A =(a1,a2,…,an) ,t, k k∑ai,gcd(t,k)=1 加密: c=B·x(x为明文x二进制串) 例题— 加密 超递增背包向量A=(1, 3, 5, 11, 21, 44, 87, 175, 349, 701) k=1590,t=43, gcd(43, 1590)=1 计算一般背包B=(43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523)。 例题— 解密 超递增背包向量A=(1, 3, 5, 11, 21, 44, 87, 175, 349, 701) k=1590,t=43, gcd(43, 1590)=1 背包密码体制破译 基本思想 不必找出正确的模数k和乘数t(即陷门信息) 只须找出任意模数k′和乘数t′,使得用k′和t′去乘公开的背包向量B时,能够产生超递增的背包向量即可。 背包问题应用 背包问题是著名的NPC问题,至今还没有好的求解方法,这为其在密码体制上的应用奠定了理论数学基础 背包问题的公钥系统在陷门设计中还存在不足,故在加解密方面没能得到应用 但零知识证明无需设计陷门,利用背包可以设计出安全的认证和签名系统 4.5 Rabin密码体制 只要能对n进行因子分解,便可攻破RSA。 破译RSA困难性≤对n进行因子分解。 目前不能证明两者能否确切相等,因为不能确知除了对n进行因子分解外,是否还有更简洁的破译方法。 目前只有Rabin密码体制已被证明对该体制的破译与分解大整数一样困难。 中国剩余定理 定理(中国剩余定理): 设m1,m2,…,mk是两两互素的正整数, 则一次同余方程组 对模M有唯一解 当p≡q≡3 mod 4,两个方程x2≡c mod p,x2≡c mod q的平方根都可容易地求出。 因c是模p的平方剩余,故 Rabin密码 1. 密钥的产生 随机选择两个大素数p、q,满足p≡q≡3 mod 4,计算n=p×q。n作为公开钥,p、q作为秘密钥。 Williams改进 西安电子科技大学 * 背包问题是NPC问题(遍历2n子集) 例 上例背包问题:已知f(x)=3231, A=(43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523) 求x 单向陷门函数 对所有x?A,易于计算f(x)。 对在不知陷门信息下求逆困难的函数,当知道陷门信息后,求逆是易于实现的。 背包问题是单向函数,陷门何在? 加密 解密 超递增背包问题容易求解。 已知s为背包容积,对A从右向左检查每一元素,以确定是否在解中。 若s≥an,则an在解中,令xn=1; 若san,则an不在解中,令xn=0。 重复上述过程,直到检查出a1是否在解中。 检查结束后得 x=(x1x2…xn)T。 超递增背包向量A=(1, 3, 5, 11, 21, 44, 87, 175, 349, 701) s=734 取s=734,由734701,得x10=1; 令s=734-701=33,由33349,得x9=0; 重复该过程得1001100001 t-1 c mod k≡t-1tAx mod k≡Ax mod k,k∑ai,知Axk,所以t-1c mod k=Ax 解密: t-1c mod k=A·x 设待加密的明文是SAUNA AND HEALTH。 P113表4-7转化为数字。 背包向量有10个元素,明文10位二进制一组; 如果一个字母对应5个二进制位,则2个字母一组。 SA,UN,A ,AN,D ,HE,AL,TH 二元序列为 1001100001,1010101110,0000100000,000010111
文档评论(0)