Sage Cross Reference Table of Wishes and Availability: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
mNo edit summary |
|||
| (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 16: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