Python Programming & Cryptography
Provided by Stay Ahead Training
About the course
Python Programming & Cryptography Course Overview
Python is an Object Oriented rapid development language deployed in many scenarios in the modern world.
This Python Programming & Cryptography course is designed to give delegates the knowledge to develop / maintain Python scripts including cryptographic elements using the current version (V3) of Python.
There are many similarities between Python V2 and Python V3 so the skills gained on this course will allow the delegate to develop their own skills further using Python V2 or V3 to support the maintenance of scripts and their cryptographic requirements.
Skills Gained
The delegate will learn to:
- Declare variables and initialise them
- Construct expressions with arithmetic, logical and relational operators
- Use iterative type statements
- Use conditional statements
- Read/write text and binary files
- Manipulate text using regular expression
- Declare and use modules
- Use and create Python Objects
- Use built-in library functions
- Use lists and dictionaries
- Interact with the email system
- Interact with Databases
- Understand the differences in Random Number Generation Techniques
- Create symmetric keys
- Use the techniques used in symmetric encryption
- Understand the differences between Symmetric and Asymmetric encryption
- Use signatures and understand how they can be used
- Use Hash algorithms and understand how they can be employed for security
Who will the Course Benefit?
Programmers who need to write, maintain and understand Python scripts including cryptographic based elements.
Course Objectives
Knowledge of Python to write, maintain and understand Python scripts and cryptographic elements.
Requirements
Familiarisation with programming concepts is useful, this knowledge can be obtained by attendance on the Concepts of Programming course.
Follow-On Courses
- Apache Web Server
- PHP Programming
- PHP & MySQL for Web Development
- PHP Programming & MySQL for Web Development
- Ruby Programming
- Perl Programming
- Introduction to MySQL
- Ruby on Rails
NOTE: Course technical content is subject to change without notice.
Course Introduction
- Administration and Course Materials
- Course Structure and Agenda
- Delegate and Trainer Introductions
Session 1: INTRODUCTION TO PYTHON
- What is PYTHON and why PYTHON is useful
- Installing Python
- The IDLE editor
- A simple PYTHON Program
Session 2: PYTHON BASICS
- How to run PYTHON programs on UNIX and Windows platform
- Lines and Indentation
- Multiple line Statements
- Quotation Marks
- Reserved Words in Python
- Python Suites
- Input
- Output
- Working with Files
- Labs
Session 3: PYTHON VARIABLES
- Assignments
- Data Types
- Numbers
- Strings
- Lists
- Tuples
- Dictionaries
- Labs
Session 4: PYTHON OPERATORS
- Arithmetic Operators
- Comparison Operators
- Assignment Operators
- Bitwise Operators
- Logical Operators
- Membership Operators
- Identity Operators
- Operator Precedence
- Labs
Session 5: CONDITIONAL AND CONTROL STATEMENTS
- if else elsif constructs
- while and for Loops
- Iteration
- Labs
Session 6: FUNCTIONS
- Creating Functions
- Def Statement
- Calling functions
- Scoping variables
- Passing arguments
- Labs
Session 7: MODULES
- What is a module
- Standard modules
- How to define and code a module
- Using import
- Argument passing and return values from a module
- Labs
Session 8: PATTERN MATCHING
- The re module
- How pattern matching works
- Pattern matching operators
- Pattern matching special characters
- Labs Part 1
- Pattern matching options
- Pattern substitution
- Pattern tagging
- Translation
- Labs Part 2
Session 9: Python OO
- Why use OO
- Creating a simple class
- Inheritance
- Passing data into a class
- More complex classes
- Labs
Session 10: EXCEPTIONS
- What are exceptions
- Default Handler
- catch/try/raise Statements
- Class Based Exceptions
- What Not To Do
- Labs
Session 11: WORKING WITH EMAIL
- Simple emails
- HTML Emails
- Working with Attachments
- Labs
Session 12: WORKING WITH DATABASES
- Python and Databases
- Connecting to MySQL Database
- Working with tables /Records
Session 13: CRYPTOGRAPHIC TERMINOLOGY
- Key
- Plaintext
- Ciphertext
- Cipher
- Non-Uniformity
- Key Strength
- Key Length
- Cipher Strength
Session 14: RANDOM NUMBERS
- Weak vs. Strong
- Python vs. Pycrypto
- Labs
Session 15: SYMMETRIC KEYS
- Symmetric Key Generation
- AES Encryption / Decryption Example
- Cipher Block Chaining
- AES_CBC encryption / Decryption example
- More Complex AES_CBC Encryption / Decryption Example
- Labs
Session 16: ASYMMETRIC KEYS
- Generating the Keys
- Using Asymmetric Keys for Encode/Decode
- RSA Encryption Example
- RSA Decryption Example
- Labs
Session 17: WORKING WITH HASHES
- Generating the Hash
- Hashed Passwords
- Labs
Session 18: WORKING WITH SIGNATURES
- Keys
- Encrypting and Signing
- Checking Signatures
- Decrypting
- Labs