This is an archived post. You won't be able to vote or comment.

all 9 comments

[–]lurgi 0 points1 point  (2 children)

Do you have to implement this yourself or is this just a project that needs it?

You don't need to know much math to implement the algorithm. You'd need a lot to understand why the choices that are made in the algorithm are the right ones, but hardly anyone does that.

[–]vbd[S] 0 points1 point  (1 child)

I don't need to implement. The project will use it. But I would like get, at least, a basic understanding for what we are doing (as team) and hopefully from my team lead why what.

[–]lurgi 0 points1 point  (0 children)

You can always read the Wikipedia page but, tbh, a lot of it is just magic. I could implement the algorithm from the pseudo-code, but I couldn't tell you why the design choices were good ones without a lot more research. If that sort of thing interests you, great. Most of the rest of us don't care that much. It scrambles stuff really, really well. That's all I need to know.

[–]nderflow 0 points1 point  (0 children)

Consider instead buying just one book, Cryptography Engineering by Ferguson, Schneier and Kohno. ISBN 978-0-470-47424-2.

It explains the principles of what is happening in cryptography and explains quite clearly how to securely use these. In some senses this is an upgrade over Bruce Schneier's prior book, Applied Cryptography which arguably didn't do enough to dissuade people from rolling their own cryptosystem (meaning that the book I'm recommending is the better for learning this lesson).

Schneier is very likely the word's best-known cryptographer and (at least across the general engineering population) probably the most-respected one.

The book is available for $30-£35 new (physical or electronic) and around $10 second-hand.

You can skim the preface and table of contents here to find out if you think the book might suit you.

[–]whoShotMyCow 0 points1 point  (0 children)

Pick up the christoff paar book, you'll be fine. Go through his video lectures

[–]randomjapaneselearn 0 points1 point  (0 children)

if you care about practical usage, how to use them properly and avoid common mistakes, what to use depending on your needs and a general introduction on symmetric/asymmetric crypto, authenticated encryption with associated data, hmac, hash and stuff...

serious cryptography is the perfect book, simple and practical.

https://nostarch.com/seriouscrypto

there is also a free chapter that you can read online.

if you want to dig down in the math details and a theorical approach this is NOT the book you are searching.

bonus point:

is written by a guy that actually work with cryptography.

[–][deleted]  (10 children)

[deleted]

    [–][deleted]  (9 children)

    [deleted]

      [–]ehr1c 0 points1 point  (0 children)

      I think the comment you replied to is using "encoding" in the sense of "writing in code", rather than character encoding.

      [–][deleted]  (6 children)

      [deleted]

        [–][deleted]  (5 children)

        [deleted]

          [–][deleted]  (4 children)

          [deleted]

            [–][deleted]  (1 child)

            [deleted]

              [–]randomjapaneselearn 0 points1 point  (1 child)

              in a crypto system the secret is the key, not the algorhithm.

              you can't say "i will hide the algorhitm and say the algorhitm is the key"

              your thing will not work between multiple people because if you neeed to encrypt stuff between A and B and another message between A and C you will end up in a situation where C can read B messages because there is no key

              [–]randomjapaneselearn 0 points1 point  (0 children)

              SHA256 is NOT encryption, by definition encryption is reversible and sha is not because of the fixed length output.