中国技术贸易论坛行业交流区单片机应用 [演示软件]甜葡萄(软件)加密锁

1  /  1  页   1 跳转 查看:273

[演示软件]甜葡萄(软件)加密锁

[演示软件]甜葡萄(软件)加密锁

甜葡萄加密锁演示模型

演示模型初级版软件的构思非常简单:把五幅居室图面各自分为六份,组合在一起和一个数据文件逐字节异或为加密文件;每选中一幅图面需要找到每份图面的起点,顺序进行异或操作,才能得到完整的原始画面。

与现代加密技术的“壳”比较,演示模型处理收到的信息是很宽容的,演示软件提取系统时间因素进行写、读软件锁操作,形成读锁文件并简单核对即允许进入运行。在实际运行中哪怕只有一值不正确,都将造成不可预料的错误,这是通常意义的"陷阱"。如果随便凑些数企图蒙混过关,结果当然是越凑越乱,最后无法收拾。

演示模型为减轻破解者的劳动强度,提供简化算法的软件锁模型。演示软件不但把写、读锁的数据文件独立存在,而且提供连续获取读锁信息的文本文件,破解者可以随时得到一个时期运作的全部读锁信息。

由于演示用的软件锁使用简化算法没有实用价值,为让更多人了解演示模型并对其进行攻击测试,又不造成过多的浪费,使用与硬件运行同样的八组有效数据,组成模拟软件锁演示文件,逐次选取一组数据替代硬件生成的文件进行演示。八组数据使用完后提示“已用完八组数据……”,可以随时复制并覆盖原来的几个文件,重新恢复八次演示功能。

演示模型公开的数据文件恰好对应于现代软件加密技术小心翼翼地加以隐藏的“壳”,现代一般破解技术(因其特点称为“脱壳”技术)正是千方百计地要找到它,才好分析总结规律,设法取而代之;而“超级母狗”则根本无视这些隐藏的方法,只是截取并完全再现“软件狗”的全部信息。演示模型旨在证明“甜葡萄加密锁”不但能抵御现代一切破解手段,还是唯一能有效地抵抗“超级母狗”长矛攻击的盾牌,演义一场全新的成语故事“新自相矛盾”。

“每次运行使用完全不同于其它时间运行的传递信息”,是甜葡萄加密锁强大保密功能的基础。不要把它与彩虹天地公司广告中华而不实的“端口噪声”相提并论,实际上所谓的端口噪声未见比用友集团财务软件的“狗”更高明(本人与前者的总工就其广告产品进行过专题讨论、而对后者则更直接做出完全等效的替代品,取名“猎狗101”)。

不能指望一个很小的水潭隐藏一条巨龙。凭个人力量无法、也没有必要编制一个超大规模的软件来进行演示。演示模型主要针对的是“超级母狗”这支所向无敌的“矛”,而忽略通常的攻击手段,根本不考虑任何的反跟踪措施(如此“小巧”的程序,本来就一目了然,何须跟踪?)。试图避开正面交锋而改寻其他出路,事实上等于直接承认这是唯一可以抵御"超级母狗"的"安全盾牌"。

欢迎尝试演示模型:

附件附件:

下载次数:12
文件类型:application/octet-stream
文件大小:
上传时间:2008-8-27 19:24:39
描述:rar

 

回复: [演示软件]甜葡萄(软件)加密锁

“让破解软件的代价,超过编制同样功能的软件,并不是神话。”这是本人15年前的结论。与一直沿用到现在的软件“壳”加密技术相对应,根据本人加密理论的特性可称之为“芯”技术。“乌鸦说葡萄是甜的”这句话是“甜葡萄加密锁”名称的来由)。

初级版的演示软件没有任何实用价值,配套的硬件是一个简化算法的模型,意在证明本人的软件加密理论。软件的构思非常简单:把五幅居室图面各自分为六份,组合在一起和一个数据文件(ls.dat)逐字节异或为加密形式形成数据文件(qn.dat);每选中一幅图面需要找到每份图面的起点,顺序进行异或操作,才能得到完整的原始画面。

每次运行前在程序的任何地方均找不到这些起点的实际值,数据文件(js.dat)保存着可以通过加密锁算出这些起点的加密因素,这是按四字节分组的分、时、日、月值。

软件操作和运行过程如下:

双击运行程序(putao.exe),软件提取系统当前时间并简单处理后进入开始画面,后台进行写、读软件锁操作,读出的数据存入文件(bjs.dat);单击“进入演示”按扭,软件查找 (bjs.dat) 文件并简单核对是否符合标准,如果您有配套的软件锁或有办法生成一个合格的(bjs.dat) 文件,软件进入运行画面;否则弹出错误对话框“没有发现软件锁”。

由于需要逐字节进行异或运算,对于速度较低的微机等待时间太长,运行间隙中分时以不同的背景颜色分割显示文本文件(sm.txt);处理完毕,右上角按扭组有效,单击不同按扭可以显示各图片。如系破解生成的数据文件(bjs.dat),且不符合标准,当然不可能显示出完整的原始图片。注意:运行画面出现后,将更新(js.dat)文件的时间值并删除 (bjs.dat)文件。

错误对话框有两个按扭,“退出”按扭显见为退出运行;点击“重试”按扭将恢复开始画面,以便进行相应的操作。

由于演示模型包括硬件使用简化算法没有实用价值,想让更多人了解这个演示模型并对其进行攻击测试,又不造成过多的浪费,使用与硬件运行同样的八组有效数据,组成模拟软件锁演示文件(ajs.dat),演示软件发现这一文件,逐次选取一组数据替代硬件生成的文件进行演示。在开始画面点动“进入演示”钮,出现对话框为“使用模拟软件锁”并提示正在运行的数据组数,八组数据使用完后提示“已用完八组数据……”,这时可以复制并覆盖原来的数据文件(ajs.dat)、(js.dat)和(qn.dat),重新恢复八次演示功能(如果硬件运行因破解失败造成画面紊乱,可只复制后两个文件)。

 

回复: [演示软件]甜葡萄(软件)加密锁

只要把“甜葡萄”文件夹复制到您的微机上,就可以正常运行演示程序,最好另外建立一个任意名称的文件夹,把上述数据文件复制过去以备意外。

综上述,正确运行软件的关键在于生成的数据文件(bjs.dat),当然还依赖(js.dat)保存的分、时、日、月值。这两个数据文件对应于现代软件加密技术的“壳”,通常被小心翼翼地加以隐藏;现代一般的破解技术(通常也因其特点称为“脱壳”技术)也正是千方百计地要找到它,才好分析总结规律,设法取而代之;而“超级母狗”则根本无视这些隐藏的方法,只是截取并完全再现“软件狗”的全部信息。

演示模型旨在证明“甜葡萄加密锁”除能抵御现代一切破解手段外,还是唯一能有效地抵抗“超级母狗”长矛攻击的盾牌,演义一场全新的成语故事“新自相矛盾”。为此,不但把上述两个数据文件独立存在,而且提供连续获取读锁信息最简易的方法:您只要创建一个文本文件(pj.txt),每次运行时使用的这两个数据文件即补充到文本文件中,随时调阅文本文件,可以得到一个时期运作的全部读锁信息。

“每次运行使用完全不同于其它时间运行的传递信息”,是“甜葡萄加密锁”强大保密功能的基础。不要把它与彩虹天地公司广告中华而不实的“端口噪声”相提并论,实际上所谓的端口噪声未见比用友集团财务软件的“狗”更高明(本人与前者的总工就其广告产品进行过专题讨论、而对后者则更直接做出完全等效的替代品,取名“猎狗101”)。演示模型之所以简化加密强度的原因在于减轻破解者的劳动强度。对于加密强度的量化概念说明如下:

1.从数据文件(js.dat)仅含分、时、日、月值可以直接看出:至少还有秒值没有被利用;稍微注意信息传递过程可知:三组时间值中的月值仅最后一组被输入软件锁利用。

2.根据常识从“每次使用不同的传递信息”可以推论:每次运行都有脱密――再加密的过程,结合数据文件(js.dat)的变换规律可以得出结论:三组时间值至多可以两两组合使用。

3.鉴于脱密需再现加密相同的数值,可想而知:每次运行中前、后两组时间值组合(中间数组复用)的运算过程相同;实际可用加密因素的数量为两组时间值(不含月值)的互乘积,这是一个不大于20亿的小数目,从广义的密码学角度讨论,即使采用穷举搜索的办法,这样小的数目也嫌太小;但处于软件加密这一特殊领域,硬件保护的是全部加密算法,破解的方法有待另外探讨。

4.由于演示模型使用简化的算法并不准备形成正式的产品,尽管不可能被任何外在的方法所侦破,仍为显示其强大的加密强度而公开:硬件根据前苏联国家标准(NSSU)算法的格式(请参阅清华大学卢开澄教授所著《计算机密码学》(第二版))。书中结论指出64 BIT分组的NSSU算法32轮加密强度勉强与16轮DES算法相当,这里的明文即数据文件(js.dat)中的分、时、日值各自压缩为2字节(16 BIT),仅相当于32 BIT分组,且只进行16轮加密,所有的密码专家都会毫不犹豫告诉您:它不堪一击。

5.事实上有更简单更直接的办法验证演示模型的加密强度,那就是利用数据文件(ls.dat)。它并不是一堆乱码随意堆砌而成,是使用递增的时间因素以同样算法进行12轮加密结果的集成,为节约您的时间不妨直接公开。它的构成实在是再简单不过:顺序是1月1日0时0分到12月31日23时59分(无论大小月均按31日计);月日时分各自占用一字节的低位,高位空缺各自使用固定的常数补充;因通常计算结果为4字节,故分值间隔也为4(低2位常为0)。这样,相邻的分值、固定间隔的时、日乃至于月,各自只有一字节的不同;彼此仅1 BIT不同的规律也很容易找到,有了这些条件应该不难推出运算全过程的一切细节。

与一般人的想法不同,这里非但不去刻意隐藏读、写软件锁的相关操作使演示模型无人能解,反而以生成文件的形式显示这些内容,并公开一些本来根本无法轻易找到的因素。如果上面的公开仍嫌不够,将随时准备回答为破解所必需的一切问题。真诚地希望有人能在付出艰辛的劳动后最终得到圆满的答案,并对演示模型加密强度正确的评价,从而决定正式产品所需的加密强度,而不希望听到半途而废者一句简单的“此题无解”。
最后编辑jinwan 最后编辑于 2008-08-27 19:48:20
 

回复: [演示软件]甜葡萄(软件)加密锁

演示模型主要针对的是那支所向无敌的“矛”,而忽略通常的攻击手段,根本不考虑任何的反跟踪措施(如此“小巧”的程序,本来就一目了然,何须跟踪?)试图避开正面交锋而改寻其他出路,事实上等于直接承认这是唯一可以抵御"超级母狗"的"安全盾牌"(当然绝不反对任何人以现有的任何硬加密手段来考验我的"矛")。
不能指望一个很小的水潭隐藏一条巨龙。凭个人力量无法、也没有必要编制一个超大规模的软件来进行演示。从程序的基本结构而言,演示模型的软件中一序列数据逐字节异或,象征着各种软件所有的运算或运行操作序列,是程序不可分割的部分。单纯就演示模型而言,当然直接修改异或的规则,很容易避开软件锁的束缚正确地显示原始图片,但这无疑是破坏了程序的结构,说句苛刻的话,一张室内装饰的图片光盘随手点击,几百副精美的图画顷刻展现,何必耗神费力来获取这几幅未见更美的画面?于是产生了与解密者的第一个约定:程序基本结构不能动,异或运算的对象不可变!
接下来讨论画面异或运算的起点,这里每个画面包含三个数值。其一为(qn.dat)中被加密的图画因素的起点是不变因素,舍此必然得不到完整的画面,与加密程序无关无须讨论;另外两个分别是加密和脱密序列在(ls.dat)中的起点,是否可以脱离束缚使用另外的方法来确定?我不想简单地说 “不!”只想请破译者换一个角度来看这个问题:如果换一个足够大的程序,把这些起点值溶入千百个类似的变量之中不知何时取用变换,不存在任何读写硬件口或文件的操作,您还能毫不费劲地找到这些变换过程吗?有这样的手段,大可以根据任何软件的用途和动程,自己编制同样功能的软件,这似乎远比解密软件更容易。当然这只是我的管窥之见,有待专家们指正。
与现代加密技术的“壳”比较,演示模型处理收到的信息是很宽容的,只要(bjs.dat)中的第14值等于(js.dat)中的第13值,且其余值互相异或等于零就允许过关,而实际运行中哪怕只有一值不正确,都将造成不可预料的错误,这是通常意义的"陷阱"。如果仅对这部分程序分析,以为很容易办到而随便凑些数上去,结果当然是越凑越乱,最后无法收拾。
如果就演示模型本身加密的因素仅取决于时间的特点,利用文本文件(pj.txt)中软件锁生成的一系列数据,编一段小程序在每次启动程序时修改系统时间并使用相应数据生成(bjs.dat)文件,不失为一个可行的办法,遗憾的是这样的办法仅对这一演示模型有效,既然知道这样的办法,当然有相应的应对措施,相信诸君也不乏应对之策。
事实上演示模型还是留有一个明显的机会给破解者,就是利用数据文件(ajs.dat)。条件是不改动演示模型的软件、不进行复制备用文件的操作(研究过程不在此限),允许(也必然需要)编制可随时改变(ajs.dat)数据的附加操作程序。这对于一般的软件工程师不是很困难的事情,根本无须借助硬件加密锁就应该作得到。虽然这样的“破解”同样仅适用于这个小小的演示模型,如果您的队伍中找不到能轻松完成这样微不足道工作的人,又不肯把软件加密的工作完全交给外人去做,恐怕再好的加密硬件也难免因软件攻击的办法而失败。
 
1  /  1  页   1 跳转

版权所有 中国技术贸易网  技术贸易专区  Sitemap

Powered by Discuz!NT 2.0.1214    Copyright © 2001-2009 Comsenz Inc.
Processed in 0.046875 second(s) , 5 queries. 网站备案:闽ICP备07063032号
返顶部