Difference between revisions of "Sage Cross Reference Table of Wishes and Availability"
Jump to navigation
Jump to search
(29 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 || || || || || || |
|- |
|- |
||
− | | |
+ | | PBKDF2 || || || || C*** || ||[http://www.dlitz.net/software/python-pbkdf2/] |
⚫ | |||
− | | 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 || || || || || |
+ | | 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> |
||
+ | /***See EVP.py<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