AES: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
== Specifications == |
|||
* [http://csrc.nist.gov/archive/aes/rijndael/Rijndael-ammended.pdf Rijndael-ammended.pdf] — Latest version of Rijndael, published on NIST website. |
|||
== Implementations == |
== Implementations == |
||
In '''Python''': |
In '''Python''': |
||
* [https://jhafranco.com/2013/06/03/validation-of-an-aes-implementation-in-python/ Validation of an AES implementation in Python 3, by João H de A Franco] |
|||
: Look good at first sight, but actually the interface is incredibly weird and twisted. Why people can't do simple things?!? |
|||
: Example of use |
|||
<source lang=python> |
|||
run aes.py |
|||
a=AES('MODE_ECB') |
|||
a.setKey('SIZE_128',0x00000000000000000000000000000000) |
|||
print "%x" % a.listToInt(a.encryptBlock(a.intToList(0x00000000000000000000000000000000))) |
|||
</source> |
|||
* [http://brandon.sternefamily.net/2007/06/aes-tutorial-python-implementation/ Brandon Stern's AES implementation in Python] |
* [http://brandon.sternefamily.net/2007/06/aes-tutorial-python-implementation/ Brandon Stern's AES implementation in Python] |
||
: Including step-by-step test vector (for AES-256) |
: Including step-by-step test vector (for AES-256) — ''MAYBE INCORRECT'' |
||
* [https://github.com/caller9/pythonaes Caller9's python implementation on GitHub] |
* [https://github.com/caller9/pythonaes Caller9's python implementation on GitHub] |
||
* [https://github.com/ricmoo/pyaes Richard Moore's implementation on GitHub] |
* [https://github.com/ricmoo/pyaes Richard Moore's implementation on GitHub] |
||
In '''Go''': |
|||
* [http://blog.nindalf.com/implementing-aes/ Krishna's blog -- Implementing AES] |
|||
: Clear explanation and implemetation |
|||
In '''Javascript''': |
In '''Javascript''': |
Latest revision as of 08:19, 10 June 2016
Specifications
- Rijndael-ammended.pdf — Latest version of Rijndael, published on NIST website.
Implementations
In Python:
- Look good at first sight, but actually the interface is incredibly weird and twisted. Why people can't do simple things?!?
- Example of use
run aes.py
a=AES('MODE_ECB')
a.setKey('SIZE_128',0x00000000000000000000000000000000)
print "%x" % a.listToInt(a.encryptBlock(a.intToList(0x00000000000000000000000000000000)))
- Including step-by-step test vector (for AES-256) — MAYBE INCORRECT
In Go:
- Clear explanation and implemetation
In Javascript:
- AES (Rijndael) Encryption Test in JavaScript, from Herbert Hanewinkel (input in hexadecimal, as it ought to be!)