Difference between revisions of "Sage Cross Reference Table of Wishes and Availability"

From YobiWiki
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"|Block Ciphers
+
! align="left" colspan="8"|
  +
===Block Ciphers===
 
|- style="background-color:#eeeeee;"
 
|- style="background-color:#eeeeee;"
| align="left" colspan="8"|Block cipher algorithms
+
| 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]
 
|-
 
|-
| Twofish || || || || ||
+
| 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]
 
|-
 
|-
| Idea || || P || || ||
+
| Twofish || || || || || ||[http://psionicist.online.fr/code/]
 
|-
 
|-
| DES || || P || || ||
+
| Idea || || C || || C || ||
 
|-
 
|-
| 3DES || || P || || ||
+
| DES || || C || || C || ||[http://twhiteman.netfirms.com/des.html]
 
|-
 
|-
| AES || || P || || ||
+
| 3DES || || C || || C || ||[http://twhiteman.netfirms.com/des.html]
 
|-
 
|-
| Present || || || || ||
+
| AES || || C || || C || Py ||[http://psionicist.online.fr/code/] [http://jclement.ca/software/pyrijndael/][http://bitconjurer.org/rijndael.py tlslite implementation]
 
|-
 
| Present || || || || || ||
 
|- style="background-color:#eeeeee;"
 
|- style="background-color:#eeeeee;"
| align="left" colspan="8"|Modes of operation
+
| align="left" colspan="8"|
  +
====Modes of operation====
 
|-
 
|-
| CMAC || || || || ||
+
| CMAC || || || || || ||
 
|-
 
|-
| XCBC || || || || ||
+
| XCBC || || || || book* || ||
 
|-
 
|-
| CBC-MAC || || || || ||
+
| CBC-MAC || || || || book* || ||
 
|-
 
|-
| CCM || || || || ||
+
| CCM || || || || || ||
 
|-
 
|-
| GCM || || || || ||
+
| GCM || || || || || ||
 
|-
 
|-
| ECB || || P* || || ||
+
| ECB || || C || || C || ||
 
|-
 
|-
| CBC || || P* || || ||
+
| 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"|Paddings
+
| 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"|Stream Ciphers
+
! 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 || P/R? || || || ||
+
| LFSR || Sage || || || || ||
 
|-
 
|-
| Shrinking generator|| P/R? || || || ||
+
| Shrinking generator|| Sage || || || || ||
 
|-
 
|-
| Self-Shrinking generator|| || || || ||
+
| Self-Shrinking generator|| || || || || ||
 
|- style="background-color:#dddddd;"
 
|- style="background-color:#dddddd;"
! align="left" colspan="8"|One-way Functions
+
! align="left" colspan="8"|
  +
===One-way Functions===
 
|-
 
|-
| MD5 || || P/R? || || ||
+
| MD5 || Py(C) || C || || C || ||[http://codespeak.net/svn/pypy/dist/pypy/lib/md5.py pypy]
 
|-
 
|-
| SHA Family || || P/R? (SHA-1 & 256)|| || ||
+
| 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 || || P/R? || || ||
+
| 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 || || || || || ||
 
|-
 
|-
| NMAC || || || || ||
+
| KDF family || || || || || ||
 
|-
 
|-
| KDF family || || || || ||PBKDF2
+
| PBKDF2 || || || || C*** || ||[http://www.dlitz.net/software/python-pbkdf2/]
|-
 
| PBKDF2 || || || || ||
 
 
|- style="background-color:#dddddd;"
 
|- style="background-color:#dddddd;"
! align="left" colspan="8"|Public-key cryptography
+
! align="left" colspan="8"|
  +
  +
===Public-key cryptography===
 
|-
 
|-
| Misc || || || || ||
+
| Misc || || || || || ||
 
|- style="background-color:#eeeeee;"
 
|- style="background-color:#eeeeee;"
| align="left" colspan="8"|ECC
+
| 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"|Other
+
| align="left" colspan="8"|
  +
====Other====
 
|-
 
|-
| RSA || P** || || || ||
+
| RSA || || C** || || C (PKCS1) || Py ||[http://pypi.python.org/pypi/asym/0.1.0] [http://www.stuvel.eu/rsa]
 
|-
 
|-
| DSA || P || || || ||
+
| DSA || || C || || C || ||
 
|-
 
|-
| ElGamal || P || || || ||
+
| ElGamal || || C || || || ||
 
|-
 
|-
| DH || || || || ||
+
| DH || || || || C || ||
 
|-
 
|-
| XTR || || || || ||
+
| XTR || || || || || ||
 
|-
 
|-
| Paillier || || || || ||
+
| Paillier || || || || || ||
 
|-
 
|-
| NTRUE || || || || ||
+
| NTRUE || || || || || ||
 
|- style="background-color:#dddddd;"
 
|- style="background-color:#dddddd;"
! align="left" colspan="8"|Pseudo-random generators
+
! 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"|Cryptanalysis tools
+
! 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]
|-
 
| || || || || ||
 
|-
 
| || || || || ||
 
|-
 
| || || || || ||
 
 
|}
 
|}
   
 
/**Check if PKCS#1 v1.5/v2.1 and if CTR<br>
/*CBC and ECB in PyCrypto are integrated into the cipher algorithmes and are coupled to encryption/decryption status<br>
 
  +
/***See EVP.py<br>
/**Check if PKCS#1 v1.5/v2.1 and if CTR
 
  +
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