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 Modes Based on ECB Plain Text[0: bs] Plain Text Key Plain Tex[bst 2*bs] X](http://slidetodoc.com/presentation_image_h2/6d0fe37707921eb1ea66f2b1a3f8cd9f/image-5.jpg)
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 Using Rounds as Mode Building Blocks Plain Text[0: bs] Plain Text[bs: 2*bs] X Alg](http://slidetodoc.com/presentation_image_h2/6d0fe37707921eb1ea66f2b1a3f8cd9f/image-7.jpg)
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