Eya*_*yal 9 testing random encryption cryptography probability
我想测试加密算法的强度.它不一定非常强大,它只是必须抵制意外破解,并说,一个坚定的黑客有10个小时的浪费.(我写了加密算法.是的,我知道这通常是一个坏主意,但我认为我有充分的理由.)
我应该做什么样的测试?到目前为止,我试过这个:
还有其他建议的测试吗
关于加密
它是一个标准的Fiestel密码,设计运行在3ns,完全是组合的,没有寄存器.(这比DES/AES /等快几个数量级.)我在3ns内做了尽可能多的回合,只有6次左右.
首先,我置换输入位的顺序.
然后,对于输入的左半部分的每个位,IOR与其一起输出函数F.F输入3位并输出1位.F的3个输入位从输入的右半部分中选择.F的输出是{00001111}的排列,因此F是平衡的.从右半部分的位中选择F的3个输入位,使得右半部分的每个位使用相同的次数(或尽可能接近).每个"F"随机且独立地生成一次.
接下来,我交换结果的左右两半并再次进行.同样,新输入的每个位都有新的"F".
这一切都是一轮.我做了6次,每轮都有随机的,独立生成的F函数.6轮需要大约3ns.我也试过改变轮次数和F的输入数量.
pax*_*blo 21
从网上下载制作低等级脏装置的说明,用华盛顿特区的街道地图将其加密,然后加密并发送至obama@whitehouse.gov.
加密算法的强度将与穿着黑色西装的男士出现在门口的时间成反比.
请记住,这可能是一次性的实验,至少在Gitmo花费的那些年里:-)
如果你不得不问 - 这是一个很好的迹象,你不应该自己写.
如果你只是想写一个作为学习练习,那么Kirtan建议的加密酷刑测试可能是好的.但是,如果您计划真正将此加密用于真正需要安全性的某些目的,那么该工具将无法替代已发布的算法经过多年的专家分析.
即使您的算法生成看起来随机的输出,也不意味着它必然是安全的.