
This course is about Cryptography focusing on Cyber Security.
You can find basics of cryptography,
Symmetric and asymmetric algorithms, like AES and RSA, DH, ECDH
Hash Algorithm like SHA-1, SHA-256, MD-5
Message Authentication Codes (MAC, HMAC)
Cryptographic Protocols like Autheticated Key Exchange, TLS
Security Systems like PKI, Secure Message, Voice, Blockchain
Main focus will be cyber security means that you will not be drown in advanced math, our aim is not to be a cryptographer. That is more tied with math subjects like abstract algebra, number theory, finite fields and so on. You will get key principals of crypto to
Implement security systems efficiently,
Enhance the reliability of the systems you are administering,
Improve your cyber security skills.
Learn where cryptography is used. Cryptography in car keys, Whatsapp, Smart Cards etc.
What is Cryptography, Cryptanalysis, Cryptology?
What is Encryption and Decryption?
Ancient Ciphers:
Scytale
Caesar Cipher
You will implement Caesar Cipher in Python.
Uses Python 3.7 and Spyder as IDE
Add a menu to the program for:
Encrypt
Decrypt
Brute Force Attack
Cryptanalysis of Caesar Cipher, both with Brute Force Attack and Frequency Analysis.
More historical ciphers:
Vigenere
Enigma
Principles of Modern Cryptography
Look at the big picture. Cryptography Types.
Symmetric
Asymmetric
Hash
HMAC
Signature
Signature Verification
Which Symmetric Algorithm shoul I use Block vs Stream Ciphers?
Advanced Encryption Standard - AES
Which Block Cipher Should I Use?
Which block cipher should I use?
What to do when message is bigger than block size?
Use Mode of Operation:
ECB
CBC
CFB
OFB
CTR
Authenticated Encryption
And finaly a comparison of Modes of Operation
Which mode of operation should I use?
AES implementation with Python
Block size encryption only.
Continued Implementatiton of AES.
Use of CBC mode of operation.
Importing package for mode of operations.
Continued Implementatiton of AES.
Use of CBC mode of operation.
What is stream cipher?
Linear Feedback Shit Registers (LFSR)
Which Stream Cipher to use?
Salsa 20
ChaCha
Salsa 20 Stream Cipher Implementation with Python
What is Hash Function?
Security properties.
Secure Hash Algorithm
SHA-1
SHA-2
SHA-3
Implementation of Hash Functions with Python:
SHA-2 family, SHA-256, SHA-512, SHA-512/256
SHA-3-256
Why we need MAC?
How to design a MAC function?
MAC functions from Hash Functions
HMAC-SHA-1
HMAC-SHA-2
MAC functions from Block Ciphers
CBC-MAC
OMAC/CMAC
GMAC
Poly1305
Implementation of MACFunctions with Python:
HMAC-SHA256
CMAC-AES
Types of Asymmetric Cryptography.
Encryption
Signature
Key Exchange
Diffie-Hellman key exchange is explained with example. Security is described by Discrete Logarithm Problem.
RSA encryption process is explained with example. Security is described with Integer Factorization
Implementation of RSA with Python.
First key generation.
Then encryption and decryption.
Finally encoding tuning.
Implementation of RSA Signatures with Python.
Elliptic Curves
Arithmetic on Elliptic Curves (Negation, Addition, Doubling)
EC-DLP
EC-DH
EC-DSA
Which Elliptic Curve to use?
Implementation of ECDSA with Python.
First key generation.
Then signature generation and verification.
What are cryptographic protocols and why do we need them?
What are the types of cryptographic protocols and which attacks types are possible?
Goals of Authenticated Key Exchange protocols.
Types of AKE protocols
Standards on AKE protocols
Present a simple AKE cryptographic protocol.
First attack and then improve its security.
An intro to SSL/TLS
Version comparison of TLS
Used ciphersuites & performance
Message Flaws of TLS v1.2 and v1.3
Attacks to SSL/TLS
Different attack types:
Ciphersuites
Implementation
Functions
Different Implementations of TLS :
1- Browser-to-Server
2- Browser-Proxy-Server
Self-signed certificate
Certificate of a trusted CA
SSL/TLS Services:
Let's Encrypt
Cloudflare
Explore quantum cryptography as a new area, view real quantum devices including a Google AI quantum computer, and learn how companies and governments develop quantum computers on public clouds.
Clarify how quantum computing spurred quantum cryptography and post-quantum cryptography, while quantum key distribution remains a separate, quantum technique for secure key exchange as part of quantum cryptography.
Explore quantum key distribution (QKD) and how quantum properties reveal eavesdropping via transmission errors, while slower rates pair with symmetric encryption to refresh keys.
Explore quantum computing basics and the role of quantum mechanics in cryptography, explaining how microscopic particle behavior impacts cryptography without claiming full understanding.
A qubit encodes a superposition of zero and one with complex amplitudes alpha-zero and alpha-one, whose squared magnitudes yield measurement probabilities. Unlike classical bits, qubits normalize and cannot be copied.
Explore quantum gates as the building blocks of quantum computing, tracing evolution from bits to qubits. Focus on the Hadamard gate, its equal superposition and inverse property.
You can find basics of cryptography and learn Cryptographic Toolset implemented in Python.
Symmetric and asymmetric algorithms,;
AES,
Salsa20,
RSA,
DH,
ECDH,
ECDSA
Hash Functions:
SHA-1,
SHA-2,
SHA-3
MD5
Message Authentication Codes (MAC, HMAC, CMAC)
You can find answers to the questions?
Which one to use Block Cipher or Stream Cipher? When and Where?
Which Block Cipher to use? Alternatives.
Which Mode of Operation to use?
What is LFSR?
Why we need MAC functions?
Main focus will be cyber security means that you will not be drown in advanced math, our aim is not to be a cryptographer. That is more tied with math subjects like abstract algebra, number theory, finite fields and so on. You will get key principals of cryptography.
Implement security systems efficiently,
Enhance the reliability of the systems you are administering,
Improve your cyber security skills.