Difference between revisions of "Sage Cross Reference Table of Wishes and Availability"
Jump to navigation
Jump to search
m |
|||
| (23 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
'''Back to [[SAGE & cryptology]] |
'''Back to [[SAGE & cryptology]] |
||
| + | ==Table== |
||
| − | |||
'''Legend''' |
'''Legend''' |
||
| + | * C: wrapped C code |
||
| − | * P: production code, typically fast and not modifiable |
||
| + | * Py: pure python code |
||
| − | * R: |
||
| + | * Sage: sage code |
||
{|border="1" |
{|border="1" |
||
| Line 10: | Line 11: | ||
! colspan="2"|optional packages |
! colspan="2"|optional packages |
||
! colspan="2"|other python packages |
! colspan="2"|other python packages |
||
| + | ! rowspan="2"|python code<br>available |
||
|- |
|- |
||
! |
! |
||
| + | ! |
||
| − | !sage.crypto |
||
!PyCrypto |
!PyCrypto |
||
!PyOpenSSL |
!PyOpenSSL |
||
| Line 18: | Line 20: | ||
!TLS Lite |
!TLS Lite |
||
|- style="background-color:#dddddd;" |
|- style="background-color:#dddddd;" |
||
| − | ! align="left" colspan="8"| |
+ | ! align="left" colspan="8"| |
| + | ===Block Ciphers=== |
||
|- style="background-color:#eeeeee;" |
|- style="background-color:#eeeeee;" |
||
| − | | align="left" colspan="8"| |
+ | | align="left" colspan="8"| |
| + | ====Block cipher algorithms==== |
||
|- |
|- |
||
| − | | Serpent || || || || || |
+ | | Serpent || || || || || ||[http://psionicist.online.fr/code/][http://www.cl.cam.ac.uk/~fms27/serpent/serpent.py.html] |
|- |
|- |
||
| − | | |
+ | | Blowfish || || C || C || || ||[http://www.4dsolutions.net/cgi-bin/py2html.cgi?script=/ocn/python/blowfish.py] [http://www.michaelgilfix.com/files/blowfish.py] [http://ivoras.sharanet.org/projects/blowfish.html] |
|- |
|- |
||
| − | | |
+ | | Twofish || || || || || ||[http://psionicist.online.fr/code/] |
|- |
|- |
||
| − | | |
+ | | Idea || || C || || C || || |
|- |
|- |
||
| − | | |
+ | | DES || || C || || C || ||[http://twhiteman.netfirms.com/des.html] |
|- |
|- |
||
| − | | |
+ | | 3DES || || C || || C || ||[http://twhiteman.netfirms.com/des.html] |
|- |
|- |
||
| − | | |
+ | | AES || || C || || C || Py ||[http://psionicist.online.fr/code/] [http://jclement.ca/software/pyrijndael/][http://bitconjurer.org/rijndael.py tlslite implementation] |
| ⚫ | |||
| ⚫ | |||
|- style="background-color:#eeeeee;" |
|- style="background-color:#eeeeee;" |
||
| − | | align="left" colspan="8"| |
+ | | align="left" colspan="8"| |
| + | ====Modes of operation==== |
||
|- |
|- |
||
| − | | CMAC || || || || || |
+ | | CMAC || || || || || || |
|- |
|- |
||
| − | | XCBC || || || || || |
+ | | XCBC || || || || book* || || |
|- |
|- |
||
| − | | CBC-MAC || || || || || |
+ | | CBC-MAC || || || || book* || || |
|- |
|- |
||
| − | | CCM || || || || || |
+ | | CCM || || || || || || |
|- |
|- |
||
| − | | GCM || || || || || |
+ | | GCM || || || || || || |
|- |
|- |
||
| − | | ECB || || |
+ | | ECB || || C || || C || || |
|- |
|- |
||
| − | | CBC || || |
+ | | CBC || || C || || C || Py || |
|- |
|- |
||
| − | | CTR || || |
+ | | CTR || || C || || || || |
|- |
|- |
||
| − | | LRW || || || || || |
+ | | LRW || || || || || || |
|- |
|- |
||
| − | | XTS || || || || || |
+ | | XTS || || || || || ||[http://psionicist.online.fr/code/pytruecrypt/] |
|- |
|- |
||
| − | | MDC-2 || || || || || |
+ | | MDC-2 || || || || || || |
|- style="background-color:#eeeeee;" |
|- style="background-color:#eeeeee;" |
||
| − | | align="left" colspan="8"| |
+ | | align="left" colspan="8"| |
| + | ====Paddings==== |
||
|- |
|- |
||
| − | | bit padding || || || || || |
+ | | bit padding || || || || || || |
|- |
|- |
||
| − | | zeros || || || || || |
+ | | zeros || || || || || || |
|- |
|- |
||
| − | | PKCS7 || || || || || |
+ | | PKCS7 || || || || C || || |
|- |
|- |
||
| − | | PKCS12 || || || || || |
+ | | PKCS12 || || || || || || |
|- |
|- |
||
| − | | ISO 10126 || || || || || |
+ | | ISO 10126 || || || || || || |
|- |
|- |
||
| − | | ANSI X.923 || || || || || |
+ | | ANSI X.923 || || || || || || |
|- style="background-color:#dddddd;" |
|- style="background-color:#dddddd;" |
||
| − | ! align="left" colspan="8"| |
+ | ! align="left" colspan="8"| |
| + | ===Stream Ciphers=== |
||
|- |
|- |
||
| − | | RC4 || || |
+ | | RC4 || || C || || C || Py ||[http://www.amk.ca/python/writing/crypto-curiosa.html] |
|- |
|- |
||
| − | | A5/1 A5/2 || || || || || |
+ | | A5/1 A5/2 || || || || || || |
|- |
|- |
||
| − | | SNOW2 SNOW3G || || || || || |
+ | | SNOW2 SNOW3G || || || || || || |
|- |
|- |
||
| − | | HC-128 || || || || || |
+ | | HC-128 || || || || || || |
|- |
|- |
||
| − | | RABBIT || || || || || |
+ | | RABBIT || || || || || || |
|- |
|- |
||
| − | | Salsa 20/12 || || || || || |
+ | | Salsa 20/12 || || || || || || |
|- |
|- |
||
| − | | SOSEMANUK || || || || || |
+ | | SOSEMANUK || || || || || || |
|- |
|- |
||
| − | | F-FCSR || || || || || |
+ | | F-FCSR || || || || || || |
|- |
|- |
||
| − | | Grain || || || || || |
+ | | Grain || || || || || || |
|- |
|- |
||
| − | | MICKEY || || || || || |
+ | | MICKEY || || || || || || |
|- |
|- |
||
| − | | Trivium || || || || || |
+ | | Trivium || || || || || || |
|- |
|- |
||
| − | | LFSR || |
+ | | LFSR || Sage || || || || || |
|- |
|- |
||
| − | | Shrinking generator|| |
+ | | Shrinking generator|| Sage || || || || || |
|- |
|- |
||
| − | | Self-Shrinking generator|| || || || || |
+ | | Self-Shrinking generator|| || || || || || |
|- style="background-color:#dddddd;" |
|- style="background-color:#dddddd;" |
||
| − | ! align="left" colspan="8"| |
+ | ! align="left" colspan="8"| |
| + | ===One-way Functions=== |
||
|- |
|- |
||
| − | | MD5 || |
+ | | MD5 || Py(C) || C || || C || ||[http://codespeak.net/svn/pypy/dist/pypy/lib/md5.py pypy] |
|- |
|- |
||
| − | | SHA Family || |
+ | | SHA Family || Py(C) || C (SHA-1 & 256)|| || C (only SHA1) || ||[http://codespeak.net/svn/pypy/dist/pypy/lib/sha.py pypy(SHA1)][https://vcs.slash-me.net/snippets/sha256/sha256.py SHA256] |
|- |
|- |
||
| − | | Whirlpool || || || || || |
+ | | Whirlpool || || || || || ||[http://psionicist.online.fr/code/] |
|- |
|- |
||
| − | | RipeMD || || |
+ | | RipeMD || || Py || || C (ripemd-160) || ||[http://psionicist.online.fr/code/] |
|- |
|- |
||
| − | | MDC-2 || || || || || |
+ | | MDC-2 || || || || || || |
|- |
|- |
||
| − | | RadioGatun || || || || || |
+ | | RadioGatun || || || || || || |
|- |
|- |
||
| − | | Davies-Meyer || || || || || |
+ | | Davies-Meyer || || || || || || |
|- |
|- |
||
| − | | Matyas-Meyer-Oseas || || || || || |
+ | | Matyas-Meyer-Oseas || || || || || || |
|- |
|- |
||
| − | | Miyaguchi-Preneel || || || || || |
+ | | Miyaguchi-Preneel || || || || || || |
|- |
|- |
||
| − | | HMAC || |
+ | | HMAC || Py || Py || || C*** || Py || |
|- |
|- |
||
| − | | NMAC || || || || || |
+ | | NMAC || || || || || || |
|- |
|- |
||
| − | | KDF family || || || || || |
+ | | KDF family || || || || || || |
|- |
|- |
||
| − | | PBKDF2 || || || || C*** || |
+ | | PBKDF2 || || || || C*** || ||[http://www.dlitz.net/software/python-pbkdf2/] |
|- style="background-color:#dddddd;" |
|- style="background-color:#dddddd;" |
||
| − | ! align="left" colspan="8"| |
+ | ! align="left" colspan="8"| |
| + | |||
| + | ===Public-key cryptography=== |
||
|- |
|- |
||
| − | | Misc || || || || || |
+ | | Misc || || || || || || |
|- style="background-color:#eeeeee;" |
|- style="background-color:#eeeeee;" |
||
| − | | align="left" colspan="8"| |
+ | | align="left" colspan="8"| |
| + | ====ECC==== |
||
|- |
|- |
||
| − | | all coordinate sys. || || || || || |
+ | | all coordinate sys. || || || || || || |
|- |
|- |
||
| − | |cf [http://www.hyperelliptic.org/EFD/ EFD] || || || || || |
+ | |cf [http://www.hyperelliptic.org/EFD/ EFD] || || || || || || |
|- style="background-color:#eeeeee;" |
|- style="background-color:#eeeeee;" |
||
| − | | align="left" colspan="8"| |
+ | | align="left" colspan="8"| |
| + | ====Other==== |
||
|- |
|- |
||
| − | | RSA || |
+ | | RSA || || C** || || C (PKCS1) || Py ||[http://pypi.python.org/pypi/asym/0.1.0] [http://www.stuvel.eu/rsa] |
|- |
|- |
||
| − | | DSA || |
+ | | DSA || || C || || C || || |
|- |
|- |
||
| − | | ElGamal || |
+ | | ElGamal || || C || || || || |
|- |
|- |
||
| − | | DH || || || || C || |
+ | | DH || || || || C || || |
|- |
|- |
||
| − | | XTR || || || || || |
+ | | XTR || || || || || || |
|- |
|- |
||
| − | | Paillier || || || || || |
+ | | Paillier || || || || || || |
|- |
|- |
||
| − | | NTRUE || || || || || |
+ | | NTRUE || || || || || || |
|- style="background-color:#dddddd;" |
|- style="background-color:#dddddd;" |
||
| − | ! align="left" colspan="8"| |
+ | ! align="left" colspan="8"| |
| + | ===Pseudo-random generators=== |
||
|- |
|- |
||
| − | | cf NIST || || || || || |
+ | | cf NIST || || || || || || |
|- |
|- |
||
| − | | Mersenne Twister || |
+ | | Mersenne Twister || Py || || || || || |
| ⚫ | |||
| − | | || || || || || |
||
|- style="background-color:#dddddd;" |
|- style="background-color:#dddddd;" |
||
| − | ! align="left" colspan="8"| |
+ | ! align="left" colspan="8"| |
| + | ===Cryptanalysis tools=== |
||
| − | |- |
+ | |- |
| ⚫ | |||
| + | | align="left" colspan="8"|Entropy finder: [http://deadhacker.com/2007/05/13/finding-entropy-in-binary-files/] and [http://blog.dkbza.org/2007/05/scanning-data-for-entropy-anomalies.html] then [http://blog.dkbza.org/2007/07/scanning-data-for-entropy-anomalies-ii.html] |
||
| − | |- |
||
| − | | || || || || || |
||
| − | |- |
||
| − | | || || || || || |
||
| − | |- |
||
| − | | || || || || || |
||
|} |
|} |
||
| ⚫ | |||
| − | /*CBC and ECB in PyCrypto are integrated into the cipher algorithmes and are coupled to encryption/decryption status<br> |
||
| ⚫ | |||
| ⚫ | |||
| + | book*: C-code available in Oreilly's OpenSSL book<br> |
||
| ⚫ | |||
Latest revision as of 17:19, 15 October 2008
Back to SAGE & cryptology
Table
Legend
- C: wrapped C code
- Py: pure python code
- Sage: sage code
| Sage | optional packages | other python packages | python code available | ||||
|---|---|---|---|---|---|---|---|
| PyCrypto | PyOpenSSL | M2Crypto | TLS Lite | ||||
Block Ciphers | |||||||
Block cipher algorithms | |||||||
| Serpent | [1][2] | ||||||
| Blowfish | C | C | [3] [4] [5] | ||||
| Twofish | [6] | ||||||
| Idea | C | C | |||||
| DES | C | C | [7] | ||||
| 3DES | C | C | [8] | ||||
| AES | C | C | Py | [9] [10]tlslite implementation | |||
| Present | |||||||
Modes of operation | |||||||
| CMAC | |||||||
| XCBC | book* | ||||||
| CBC-MAC | book* | ||||||
| CCM | |||||||
| GCM | |||||||
| ECB | C | C | |||||
| CBC | C | C | Py | ||||
| CTR | C | ||||||
| LRW | |||||||
| XTS | [11] | ||||||
| MDC-2 | |||||||
Paddings | |||||||
| bit padding | |||||||
| zeros | |||||||
| PKCS7 | C | ||||||
| PKCS12 | |||||||
| ISO 10126 | |||||||
| ANSI X.923 | |||||||
Stream Ciphers | |||||||
| RC4 | C | C | Py | [12] | |||
| A5/1 A5/2 | |||||||
| SNOW2 SNOW3G | |||||||
| HC-128 | |||||||
| RABBIT | |||||||
| Salsa 20/12 | |||||||
| SOSEMANUK | |||||||
| F-FCSR | |||||||
| Grain | |||||||
| MICKEY | |||||||
| Trivium | |||||||
| LFSR | Sage | ||||||
| Shrinking generator | Sage | ||||||
| Self-Shrinking generator | |||||||
One-way Functions | |||||||
| MD5 | Py(C) | C | C | pypy | |||
| SHA Family | Py(C) | C (SHA-1 & 256) | C (only SHA1) | pypy(SHA1)SHA256 | |||
| Whirlpool | [13] | ||||||
| RipeMD | Py | C (ripemd-160) | [14] | ||||
| MDC-2 | |||||||
| RadioGatun | |||||||
| Davies-Meyer | |||||||
| Matyas-Meyer-Oseas | |||||||
| Miyaguchi-Preneel | |||||||
| HMAC | Py | Py | C*** | Py | |||
| NMAC | |||||||
| KDF family | |||||||
| PBKDF2 | C*** | [15] | |||||
Public-key cryptography | |||||||
| Misc | |||||||
ECC | |||||||
| all coordinate sys. | |||||||
| cf EFD | |||||||
Other | |||||||
| RSA | C** | C (PKCS1) | Py | [16] [17] | |||
| DSA | C | C | |||||
| ElGamal | C | ||||||
| DH | C | ||||||
| XTR | |||||||
| Paillier | |||||||
| NTRUE | |||||||
Pseudo-random generators | |||||||
| cf NIST | |||||||
| Mersenne Twister | Py | ||||||
Cryptanalysis tools | |||||||
| Entropy finder: [18] and [19] then [20] | |||||||
/**Check if PKCS#1 v1.5/v2.1 and if CTR
/***See EVP.py
book*: C-code available in Oreilly's OpenSSL book