Second lesson - learn cryptanalysis. If you aren't aware of how crypto schemes are already being broken, how will you assess how "strong" or "weak" your own algorithms are.
The self study paper I linked to above is aging a bit however. There are newer attacks (such as the recent bi-clique attack against AES) which won't be covered there.
There's also a fledgling crypto stack exchange site, which may be a better place to ask questions, if you actually intend to study crypto seriously (rather than "I've invented the best crypto system ever, nobody will ever be able to crack it").
My specific suggestion is that you start with a cryptographically secure random number generator (http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator), seed said generator with your symmetric encryption key and work from there avoiding the attack vectors above.
发布评论
评论(2)
第一课——不要。
第二课 - 学习密码分析。如果您不知道加密方案是如何被破坏的,您将如何评估您自己的算法的“强”或“弱”程度。
然而,我上面链接的自学论文有点过时了。还有较新的攻击(例如最近针对 AES 的双向攻击),此处不会介绍。
还有一个刚刚起步的 crypto 堆栈交换网站,如果您确实打算认真研究加密(而不是而不是“我发明了有史以来最好的加密系统,没有人能够破解它”)。
First lesson - don't.
Second lesson - learn cryptanalysis. If you aren't aware of how crypto schemes are already being broken, how will you assess how "strong" or "weak" your own algorithms are.
The self study paper I linked to above is aging a bit however. There are newer attacks (such as the recent bi-clique attack against AES) which won't be covered there.
There's also a fledgling crypto stack exchange site, which may be a better place to ask questions, if you actually intend to study crypto seriously (rather than "I've invented the best crypto system ever, nobody will ever be able to crack it").
构建一个能够抵抗...
已知纯文本攻击的算法:http://en.wikipedia .org/wiki/Known-plaintext_attack
选择的纯文本攻击:http://en.wikipedia.org/wiki/Chosen_plaintext_attack
差分密码分析:http://en.wikipedia.org/wiki/Differential_cryptanalysis
线性密码分析:http://en.wikipedia.org/wiki/Linear_cryptanalysis
我的具体建议是从加密安全的随机数生成器开始(http://en.wikipedia.org/wiki/ Cryptographically_secure_pseudorandom_number_generator),使用您的对称加密密钥为所述生成器提供种子,并从那里开始工作,避免上述攻击向量。
Build an algorithm that is resistant to...
Known plain-text attacks: http://en.wikipedia.org/wiki/Known-plaintext_attack
Chosen plain-text attacks: http://en.wikipedia.org/wiki/Chosen_plaintext_attack
Differential cryptoanalysis: http://en.wikipedia.org/wiki/Differential_cryptanalysis
Linear cryptoanalysis: http://en.wikipedia.org/wiki/Linear_cryptanalysis
My specific suggestion is that you start with a cryptographically secure random number generator (http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator), seed said generator with your symmetric encryption key and work from there avoiding the attack vectors above.