破解基本的 Merkle-Hellman 密码系统的多项式时间算法

7 篇文章 3 订阅
订阅专栏

本来想在网上找一些破译背包加密的脚本,结果没找到,那就只能自己写。既然这样,那总要知道是怎么破译的吧。于是把Shamir大神的论文—《A polynomial time algorithm for breaking the basic Merkle-Hellman cryptosystem》花了几天看完了,做了翻译,有些地方加上自己的理解,认真看应该能看懂。

不想再打一遍了,我就直接贴图了。

上面毕竟是破译的一个非正式描述,好好理解几遍之后(只是我的理解,可能不完全准确),我举个例子来说明破译过程。

私钥A^{'}=[12,17,47,79],M=181,U=73,W=62=U^{-1} \bmod M;生成公钥A=[152,155,173,156],这里n=4,d=2

破译算法的第一步:找[p/a_{1},(p+1)/a_{1})pW,M是陷门对的必要条件是W/M \in [p/a_{1},(p+1)/a_{1});这样的p求解的思路在论文中如下处:

也就是说,我们要找的p具有一个性质:对其他的a_{i}(i=2,...,n)p \cdot a_{i} mod a_{1}都很小,具体的界见上。这里我用一个python脚本来筛选一下p,但是并未用论文中提到的Lenstra整数规划算法寻找。

A=[152,155,173,156]
lenA=len(A)
blockb=[16,32,64,128]
blocke=[240,224,192,128]
tmp=0
for i in range(1,A[0]):
    tmp=0
    for j in range(1,lenA):
        delta=(A[j]*i)%A[0]
        if delta>blockb[j] and delta<blocke[j]:
            tmp=1
    if tmp-1:
        print i

通过这种性质选出p=1,2,3,8,9,10,51,52,53,58,59,60,102,103,104,109,110,111,可以验证W/M=62/181 \in [52/a_{1},53/a_{1}],而52果然在候选的p中。p的可候选值的数量从151迅速下降到18,算法第一步到此结束。

再看算法的第二步:在第一步选出的[p/a_{1},(p+1)/a_{1})进行分析,通过前l个锯齿曲线的间断点将[p/a_{1},(p+1)/a_{1})分成若干个子区间,然后在这些子区间上,看是否有满足超递增条件且模数大于所有超递增序列之和的解,也就是论文的如下处:

超递增条件与模数大于所有超递增序列之和分别对应第2,3个不等式。对所有的[p/a_{1},(p+1)/a_{1}),它的每个子区间[V_{t},V{t+1}),求解满足第2,3个不等式的解(在有的子区间上有可能为空)。

Merkle-Hellman背包密码算法
mfcheer
10-27 3683
代码:#include <stdio.h> #include <iostream> #include <string.h> #include <cmath> #include <string> #include <set> #include <map> #include <vector> #include <time.h>long long gcd(long long a, long long b)
针对3-Des的Merkle Hellman攻击
qq_43656941的博客
01-03 935
针对3-Des的Merkle Hellman攻击1.楔子2.3-DES简介3.攻击过程介绍3.1.随机选择a3.2.对所有可能的秘钥K1=i,计算Pi=Di[==a==]3.3.获得2中所取得所有 ==Pi== 所对应的密文==Ci==,计算Bi=Di[==Ci==],然后将(Bi,i)入哈希表进行排序3.4.对所有可能的秘钥K2=j,计算a对应的第二个中间值Bj=Dj[==a==]3.5.若Bj=Bi,那么就认为(K1,K2)=(i,j)4.时间复杂度分析 1.楔子 这是博主“密码学与信息安全基础”课程中
Merkle-Hellman背包算法
VerRan
03-23 647
转自:http://baike.baidu.com/view/3416519.htm     1977年,MerkleHellman合作设计了使用背包问题实现信息加密的方法。其工作原理是:假定甲想加密,则先产生一个较易求解的背包问题,并用它的解作为专用密钥;然后从这个问题出发,生成另一个难解的背包问题,并作为公共密钥。如果乙想向甲发送报文,乙就可以使用难解的背包问题对报文进行加密,由于这个...
Java实现Merkle-Hellman背包密码体制
进击的小小白
11-12 857
背包密码体制是基于“子集之和问题”的难解性,开发出来的公钥密码体制。 在解释这个加密算法之前,先解释下,超递增整数集: 通俗来说,当一个有序集合的每一个整数都大于他们前面的整数之和,这个集合就是超递增整数集。 比如:有序集{3,5,11,20,41,81,167,339}就是超递增整数集。 另一个需要了解的知识就是:逆元,逆元的解释以及求法请戳下面链接:  https://www.cnb...
Merkle-Hellman背包公钥密码加解密 C语言
11-03
包含c实现的Merkle-Hellman背包公钥密码加解密的源代码, 在vs08下实现
[密码学]密码时间
旷野无霜的专栏
02-07 1709
大约公元前300年,欧几里德编著了《元素》。他13本书中的3本都论述了数论,介绍了可除数,素数及复合数的基础概念。 公元前58年至公元前51年,朱利叶斯·凯撒征服了高卢。他的《高卢战记》中包含了第一次有史料记载的加密信息的使用的事例。 1586年,法国的一名外交家Blaise de Vigenère开发出了第一种复合字母顺序密码,在这种加密术中信件可以依靠在文件中字母位置的不同而被进行不同的加密。
merkle-hellman:MerkleHellman 加密系统
06-28
MerkleHellman 加密系统 在教授的离散结构课程的最终项目。 该项目的目标是为了教育目的用实现。 有关更多信息,您可以查阅正式描述该项目文档。 汇编 src $ make cc -lm -pedantic -ansi -c -o comun.o comun...
merkle-hellman02.rar_Knapsack_knapsack c_merkle_背包加密_背包加密算法
09-19
ASCII明文背包加密算法,按照书上的例子自己写的
mhkc-js:与 Merkle-Hellman 加密算法的 nodejs 聊天。 为加密课程而写
06-11
使用 Merkle-Hellman 加密的 nodejs 聊天。 为加密课程而写
js-versidag:基于Merkle-DAG的并发版本历史记录
02-03
versidag 基于Merkle-DAG的并发版本历史记录。 版本+ dag = versidag动机在分布式系统中,副本的时钟不可靠,无法获得版本的总顺序。 在p2p网络中,这尤其如此,因为其中的时钟差异可能会加剧。 有一些方法可以通过...
限用日期破解
09-11
限用日期破解破解的文件必须是单个程序,这个限制性多些
背包问题的解密及破解
Taotaoboke的博客
10-25 2684
公钥密码体制是Diffie和Hellman1976年提出的,1978年,背包密码体制作为第一个公钥密码体制由MerkleHellman1978年提出。虽然在两年后,该体制就被破译,但作为第一个公钥密码体制,还是有着划时代的意义。接下来我们来看它的解密以及破译思想和过程。 我们仍取上一篇的例题来进行分析,向量背包和加密过程可以看上一篇博客:https://blog.csdn.net/Taotaoboke/article/details/109258587 一、解密 我们直接引用上一篇的解密原理分析
merkle-hellman背包算法 java_浅析几种公钥密码体制-RSA;Merkle-Hellman、背包加密体制、ECC优缺点...
weixin_36269396的博客
02-28 1093
自从公钥密码体制被提出以来,出现了许多公钥密码方案 如RSA、ELGamal密码体制、背包算法和ECC、XTR、NTRU等。下面就介绍一下各种密码体制的优缺点,并进行比较。2RSA在Diffie和 Hellman提出公钥系统观点以后,1977年麻省理工大学的Rivest、Shamir和Adleman提出了第一个比较完善的公钥密码算法,即 RSA算法[2]。RSA系统是公钥系统的最具有典型意义的方法...
【历史上的今天】2 月 2 日:公钥密码学发明者诞生;苹果的衰落期;测谎仪首次被使用
历史上的今天
02-02 2689
阿梅里奥因其作为企业复兴者的声誉而受聘,他做出了深刻的改变,包括大规模裁员和削减成本,直到乔布斯的归来。
两种公钥加密算法——Merkle-Hellman背包、RSA
Jaly的博客
07-05 6110
今天看了一些加密体制,很厉害,佩服之余顺便总结下公钥(对称密钥很多啊,历史比较有名的有DES、AES、RC系列...水平不够说不清楚,所以不写了)。自己以后也要看,所以尽量通俗易懂(其实是不怎么会很官方很学术,顺道说,明天就七夕了,我还在搞些啥跟啥,怎么过%>_ ①Merkle-Hellman背包        先说说背包问题吧(第一次看觉得。。。wc,背包也可以拿来加密,难不成是忽悠?)
某文件被加密了(基于时间的随机种子破解
Onlyone_1314的博客
02-15 1857
目录某文件被加密了 某文件被加密了 最后修改时间是2019/04/11 22:10:34。 猜测大概2019/04/11 22点11分之前,某一刻用户运行了genprik,生成了密钥加密文件。 加密算法已知,通过分析密文,只能得出密钥第1个字节是0x25第2个字节是0x61。 求完整的16个字节的密钥。 刚开始用IDA打开,IDA会提示exe的入口点在其他的位置,应该是有壳,先对它进行查壳脱壳: 再用IDA打开: int __cdecl main(int argc, const char **arg
merkle-hellman背包算法 java_Java实现Merkle-Hellman背包密码体制
weixin_27153203的博客
02-28 312
背包密码体制是基于“子集之和问题”的难解性,开发出来的公钥密码体制。在解释这个加密算法之前,先解释下,超递增整数集:通俗来说,当一个有序集合的每一个整数都大于他们前面的整数之和,这个集合就是超递增整数集。比如:有序集{3,5,11,20,41,81,167,339}就是超递增整数集。另一个需要了解的知识就是:逆元,逆元的解释以及求法请戳下面链接:加解密代码为:package MerkleHellm...
MerkleHellman背包公钥加密算法
最新发布
10-19
Merkle-Hellman背包公钥加密算法是一种基于超递增背包的公钥加密算法。它的加密过程是将明文转化为二进制数列,然后将其与超递增背包相乘得到密文。而解密过程则是通过求解子集和问题来还原出明文。这个算法的安全性基于超递增背包的困难性,即在已知公钥的情况下,攻击者无法通过密文推算出明文。但是,如果超递增背包序列被攻击破解,那么整个加密算法就会失效。因此,为了保证算法的安全性,需要选择足够长的超递增背包序列,并且在加密过程中使用随机化技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

分类专栏

  • exp复现与分析 6篇
  • 密码学 7篇
  • C语言 3篇
  • python 1篇
  • Ubuntu配置 4篇
  • Vim使用 2篇
  • Java 5篇
  • Ubuntu下Latex安装与使用 2篇

最新评论

  • Ubuntu18.04安装sagemath(命令行安装,超方便)

    叶非花: 请问一下怎么安装第三方python包?

  • sage之离散对数求解

    ckm1607011: 请安装sage:https://blog.csdn.net/ckm1607011/article/details/106724624

  • sage之离散对数求解

    ckm1607011: 你可以认为G()是一个构造函数,g=G(rt)通过整数rt构造一个有限域上的元素g

  • sage之离散对数求解

    聿十: 你好请问bsgs函数在哪个库里???

  • GF(2)上任意阶本原多项式的生成—线性反馈移位寄存器

    TIGER1693: 非0初始状态理解为生成随机数序列的种子k7k6...k0,而8元本原多项式可以对应于:c0=1(x^8系数为1),c1=0(x^7系数为0),c2=0,c3=0,c4=1,c5=1,c6=1,c7(x系数为0)=0。kj=kj-1 cj-1⊕kj-2 cj-2⊕...⊕k0 c0,也即k8=k7 c7⊕k6 c6⊕...⊕k0 c0。由初始种子就可以一步步推导出接下来的序列。个人理解,如有错误还请指正。

最新文章

  • FuzzBunch之payload—Regdelete复现(win7)
  • C语言多线程编程实例(参数传递,同步锁)
  • python—整数与字符串的编解码
2020年31篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司罗湖seo优化同乐网站建设设计塘坑网站推广系统同乐关键词按天收费石岩网站优化按天扣费龙岗SEO按天计费深圳关键词按天收费龙岗英文网站建设木棉湾企业网站建设木棉湾标王龙岗企业网站建设广州网站优化推广大芬英文网站建设坪山百姓网标王推广深圳网站建设同乐建网站南山网页制作大芬营销网站坪地百度爱采购西乡seo优化坪地优化荷坳企业网站建设同乐关键词按天收费永湖网站优化按天扣费深圳网站制作荷坳网站推广方案双龙关键词排名同乐模板网站建设横岗设计网站大运百度竞价包年推广歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化