Chinaunix首页 | 论坛 | 博客
  • 博客访问: 434741
  • 博文数量: 78
  • 博客积分: 2307
  • 博客等级: 上尉
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-04 00:31
个人简介

IT老鸟,信息安全硕士。

文章分类
文章存档

2017年(2)

2012年(21)

2011年(55)

分类: 网络与安全

2011-07-05 16:27:33

几年前的草稿,当时不懂数据结构.想用sql搞定.

昨天学习了栏栅算法。我想到了有字典的暴力破解。先合并在拆分查字典求组合的方法。模拟美国安全局的超级计算机的穷举。考察了一下this.想法。 
加强:任意明文经过有限次变换1.后所得的密文都是可破解的。 
变换1:第i个字母移动到k位。i,kN 
破解方法:带字典的暴力破解 
符合说明: %表示之间含有零个到任意多个字符 
"null"
表示不连续 
+
表示连接 
1.
完备性 
1
)是否存在原子性单词和由原子性单词构成的词而意思有二义性 
存在。outbreak %out%"null"break% 
2)
是否一次搜索的解为最优解或者完全解? 
由于第一条的存在显然不是最优解或者完全解 
3
)是否存在a+b+ca'+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个字母是否空.空输入havenclosed后删除此行,否则直接删除此行} 否则转step3
step3:
aeiouy为关键字搜索字典(zidian)含有则转到openedexam (这个是一到多的搜索,while(bof==0 or eof==0 ))
step4:
用含有的字母减a~z里面的数字.如果出现负则删除此行.否则把exam的值拖到haven里面(haven是更新.在后面加上(+)) 转到step2

说明:程序执行有局部性.还有个第二步时可以检测opened是否为空(exist)空就算法结束或者失败.

这个实现了之后可以解决加强的分析.还有个简单的替代分析.这个要用统计学的资料.用了这个就可以纵横传统密码学界了

阅读(1234) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~