Crypto Py Pure Python Cryptography Paul A Lambert
Crypto. Py Pure Python Cryptography Paul A. Lambert February 22, 2003
Crypto. Py, What is It? • Python Language Cryptography – Pure Python • Incudes: – Ciphers (Rijndael, AES, RC 4, WEP, TKIP) • Modes (CBC, CCM) – Hashes – Keyed Hashes (HMAC, IEEE) – Entropy (classes for strong PRNs) – App (simple demos)
Crypto. Py Why? • Improved APIs – Automatic padding of block ciphers – Automatic IV generation (should not be left to app developer) – Object oriented modes • Benefits – Easy to use, very portable – Easy to review as reference implementations – Easy to ‘extend’
Extending/Creating New Block Ciphers • Why? Isn’t it bad to create new algorithms? – Current ‘modes’ are lacking • CBC flawed • No ‘good’ choice for encrypt+integrity – New algorithms are difficult, extending algorithms is easy • Readable ‘modified’ code helps the review process
Modes Based on ECB Plain Text[0: bs] Plain Text Key Plain Tex[bst 2*bs] X Key Block Algorithm Cipher Text ECB CBC
Block Algorithms are built on Rounds Plain Text Key Block Algorithm Cipher Text Plain Text Key Alg Round 1 Alg Round 2 • . Alg Round N ECB Cipher Text
Using Rounds as Mode Building Blocks Plain Text[0: bs] Plain Text[bs: 2*bs] X Alg Round 1 Alg Round 2 Alg Round i Alg Round N+k • . X Cipher Text
Quick Demos • API examples • WEP/TKIP/CCMP references – With WEP/TKIP crc mod example • File encryption • Ping encryption – ‘extending’ protocols has some interesting benifits
- Slides: 8