Python Cryptography Background for CiscoLive DevNet Sessions 1040, 1041 and 1042
Greetings DevNet 1040,1041 and 1042 session participants!
I wanted to provide some additional background on cryptography that you can take a look at before, (or even after our sessions) at CiscoLive.
I’ve added a folder called "Part IV DevNet Sessions/Crypto Background” to the existing Python background material. You can find it here:
:
https://cisco.app.box.com/files/0/f/17326440480/CiscoLive2017
There are seven videos with code examples, (almost 2.5 hours of content) focused on cryptography. I’ve also updated the 'getting_started_contents.xlsx' spreadsheet in the main folder with a ‘crypto tab’ that explains what's out there.
We will be demonstrating some examples of encryption using the Python ‘pycrypto’ module. Pycrypto is one of the most popular crypto modules available and one of the more frequent PyPi repository downloads.
The code that we will base our examples on was taken from an excellent example tutorial called “Python Encryption Tutorial with Pycrypto’ by Sentdex. I've included the source (crypto.py) in the CiscoLive code example folders but it can also be found here:
https://pythonprogramming.net/encryption-and-decryption-in-python-code-example-with-explanation/
There’s also a good youtube video that explains the code available here:
https://www.youtube.com/watch?v=8PzDfykGg_g
The purpose of the videos and code samples that we’ve uploaded is to break down/decompose most of the program elements into it's constituent parts. The content is intended to provide some additional background information on concepts like:
- Installing pycrypto in Windows environments
- Demonstration of ‘compiling’ a python program (turning a .pyc file into a windows .exe file)
- Base64 encoding
- Python lambdas
- How the AES algorithm works - I.e. the various AES block modes of operation, implications of key size selection, making sense out
of the programs block PADDING scheme, etc.,etc
If your comfortable with the original code and video that was provided by Sentdex (both are excellent btw;), then please don’t bother with the content.
If, on the other hand, you’d like to get a little more detail (perhaps from a different perspective) about how the code works or are interested in understanding some additional background about the AES cipher (and various design choices to consider when using it), then please, help yourself!
If your not sure where to begin, then start out watching the last video module 7 called ‘Putting it all together’. This just dissects the crypto.py program code step by step. Each element of the program has a video/code example that drills down from there.
I’m looking forward to our DevNet sessions at CiscoLive and again, if I can help with any of the content, (before or after the sessions),or if you’d like to provide some guidance, feedback or personal insights of your own please feel free to comment below!
Thanks
Vince