仿射加密法
发表于 :
2015-05-12 11:25
由 Caesar
仿射加密法是一种字符替换的加密方法。每个字符通过仿射函数替换为另一个字符。
如果字符空间是26,也就是只对26个英文字符进行加密,密文字符是:
y=ax+b(mod 26)
其中,a,b属于集合{0, 1, 2, 3... 25},而且a和26互质,这样才能保证x和y一一对应。
讨论代码在第44行(文件AffineCipher.h中)
发表于 :
2015-05-12 11:39
由 Caesar
传统的用途是加密英文信件,字符空间26就足够了,但是用在计算机字符中就不够了,还有数字,符号,字符还有大小写……
这里的96表示的集合{0, 1, 2, 3...95}
讨论代码在第50行(文件AffineCipher.h中)
发表于 :
2015-05-12 11:48
由 Caesar
原文字符串要求是ascii字符32到127,转换到0到95的值,也就是加密公式里的x
讨论代码在第46行(文件AffineCipher.h中)
发表于 :
2015-05-12 11:53
由 Caesar
保证a和96互质,因为这里字符空间是96而不是26
讨论代码在第50行(文件AffineCipher.h中)
发表于 :
2015-05-12 11:53
由 Caesar
加密后是0到95的值,加上32,就是ascii字符32到127,这样一个由ascii字符32到127组成的字符串就加密为另一个也是由ascii字符32到127组成的字符串了