Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this questionI'm looking into a little project of designing my own symmetric crypt algorithm. It will be for mainly file encryption. What is the design process for such a project?
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").
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.
精彩评论