Python Programming & Cryptography

Provided by

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

Related article

Accelerate your career with an online computer science master’s degree from the University of Liverpool The field of computer science is rapidly ch...