IT老鸟,信息安全硕士。
分类: 网络与安全
2011-07-05 16:27:33
昨天学习了栏栅算法。我想到了有字典的暴力破解。先合并在拆分查字典求组合的方法。模拟美国安全局的超级计算机的穷举。考察了一下this.想法。
加强:任意明文经过有限次变换1.后所得的密文都是可破解的。
变换1:第i个字母移动到k位。i,k∈N
破解方法:带字典的暴力破解
符合说明: %表示之间含有零个到任意多个字符
"null"表示不连续
+表示连接
1.完备性
1)是否存在原子性单词和由原子性单词构成的词而意思有二义性
存在。outbreak 和 %out%"null"break%
2)是否一次搜索的解为最优解或者完全解?
由于第一条的存在显然不是最优解或者完全解
3)是否存在a+b+c与a'+b'+c'的合并值相等?
有可能
2.可读性
1)暴力破解出来是否可以正常识别?
显然不能。
1.1)可否可以对结果再排序?
这个要用到英语语法。宝贝鱼Babel Fish的翻译软件尚且没有搞定在本科阶段还是。。。
如果硬要搞就仿照编译原理挨个定义规则集。
1.2)有折中方案否?
用人来解决
2)是否有二义性?
有。中文:你吃饭没 你没饭吃 显然二义 英文:a found b b found a 显然也有。
笔的算法实现了.要学vfp.暂时没有时间.老陈说暂时不要钻牛角尖把大的东西搞出来.本科阶段考研结束前暂时不去分析.
平台mssql 语言t-sql 备选方案.C语系 哈希表
表结构 danci opened closed
code:
creat table danci(word nvarchar(50))
creat table opened(a int default 0,
b int default 0,
.....,
z int default 0,
exam nvarchar(20) default 0,
haven nvarchar(20) default )
creat table closed(jieguo nvarchar(50) default
null)
算法:
step1:初始化opened表 把字符串选择各个字母频数后输入opened表.激活触发器.
step2:判定第一行记录(top 1)aeiouy的数是否为空,空则{判定剩下的20个字母是否空.空输入haven至closed后删除此行,否则直接删除此行} 否则转step3
step3:按aeiouy为关键字搜索字典(zidian表)含有则转到opened表exam (这个是一到多的搜索,while(bof==0 or eof==0 ))
step4:用含有的字母减a~z里面的数字.如果出现负则删除此行.否则把exam的值拖到haven里面(haven是更新.在后面加上(+)) 转到step2
说明:程序执行有局部性.还有个第二步时可以检测opened是否为空(exist)空就算法结束或者失败.
这个实现了之后可以解决加强的分析.还有个简单的替代分析.这个要用统计学的资料.用了这个就可以纵横传统密码学界了