5 ms·
Do you realise the author is also the creator of the Erlang programming language and not some random noob from the internet?
by sjtgraham 11y ago
Do you realise the author is also the creator of the Erlang programming language and not some random noob from the internet?
- mehrdada 11y agoI have nothing against the author. I just don't think the text is a proper intro to cryptography and I also think it is dangerous for a noob to read this and go implement crypto. That being said, creating a programming language does not necessarily qualify one to do proper cryptography: they are two quite separate skill sets. In fact he himself readily admits he is not a cryptographer. There's nothing wrong with that. EDIT: When I think about it, the fact that something like this comes from a person with stellar reputation makes it doubly scary.
- sjtgraham 11y agoI must admit I find it somewhat amusing that you so vehemently attack this document when the author has published it in order for it to be verified and corrected by others.
- jacquesm 11y agoThe scary thing is that if it weren't from Joe Armstrong it wouldn't be taken serious at all but because it is it might get people to take his reputation and extrapolate to another field and accidents could very well happen as a consequence of that. And I'm saying that as a big fan of both Erlang and Joe Armstrong.
- jsnell 11y agoThat's no excuse, it's still bad crypto. If anything it's worse, because as we've just seen from your reply, some people think that experience in language design somehow translates to knowledge of cryptography.
- sjtgraham 11y agoPlease don't put words into my mouth. The original top level comment was poor and my comment was responding to it, e.g. Armstrong says "AES assumes the data to be encrypted is a multiple of 16 bytes long", which is correct so I don't know why the OP felt the need to say "for the record, the AES algorithm itself does not encrypt arbitrarily sized data" as Armstrong did not claim as such.
- mehrdada 11y agoYes, I stand by what I said. AES (Rijndael) block cipher operates only on 128-bit blocks, not on data that's divisible by 16-bytes. This is an important distinction. Calling AES used in CTR/CBC/etc. mode without mentioning it at all, "AES" speaks much about the sophistication and cryptographic quality of the guide. That's what I was alluding to.
- jsnell 11y agoThe original comment is correct here. AES by itself is indeed just going to encrypt a single block of 128/192/256 bits. To encrypt a plaintext longer than that, you need to apply the cipher repeatedly on subsequent blocks. The exact mode in which that's done is important. For example in this case the code uses the CBC mode (a fact not mentioned anywhere in the document). CBC has the funny property that flipping bit X in cipherblock N will flip bit X in plaintext block N+1 (while completely scrambling plaintext block N). This is a very exploitable property. Which is why the standard advice would be that you always need to authenticate, not just encrypt. (E.g. encrypt-then-mac). But of course this document doesn't give even this most basic of crypto recommendations. Which endangers anyone who reads it and thinks they learned something.
- mehrdada 11y agonit: all AES variants are 128-bit block ciphers, i.e. they transform 128-bit data blocks. AES-192 and AES-256 take 192-bit and 256-bit keys but still operate on 128-bit blocks. (Rijndael itself supports varying block sizes, but the AES standard has only adopted the 128-bit version.)
- halayli 11y agoAppeal to accomplishment fallacy.
- signa11 11y ago> Do you realise the author is also the creator of the Erlang programming language and not some random noob from the internet? yes. so ? would einstein make a good car mechanic ?