ECE 404: Introduction to Computer Security
Class Notes
The notes for this class are available to the public at
https://engineering.purdue.edu/ece404.
They are very detailed, so I will give an overview of what we did.
This does not include everything because there was a lot of content
we covered.
Key Points
- Cryptography
- Brief History of Ciphers
- Feistel Structure
- Finite Fields
- Modular Arithmetic
- Polynomial Arithmetic
- Symmetric Cryptography
- Public Key Cryptography
- DES
- AES
- RSA
- Encryption Modes
- Needham-Schroeder
- Kerberos
- Diffie-Hellman
- SHA-2
- SHA-246
- Signing Messages
|
- Systems
- IP/TCP
- DOS/DDOS/SYN-Flood
- Port and Vulnerability Scanning
- DNS
- DNS Cache Poisoning
- Packet Filtering (iptables)
- PGP
- IPSec
- SSL/TLS
- Tor
- Peer-to-Peer Networks
- Password Hashing
- Dictionary Attacks
- Rainbow-Table Attacks
- Buffer Overflows
- PHP and SQL injection
- Cross-Site Scripting
- Worms, Viruses, and Trojans
- Social Engineering
- Spam
- Phishing
|
Course Work
The professor for this course does not want us to post our solutions
online, so I will describe the coursework here.
- Implement DES and encrypt an image in code-book mode
- Implement AES
- Encrypt an image with AES in counter mode and creating a
cryptographically secure pseudo-random number generator using
AES
- Implement RSA and crack a weak version of RSA
- Implement SHA-256
- Implement a port scanner and a SYN-flood attack
- Create a firewall on Linux using iptables
- Exploit and secure a buffer overflow condition
- Write a Email filter for procmail
1 and 3: Encryption of Images in Different Modes
I encrypted the same image in both code-book and counter modes
in order to show why code-book was insufficient. Bellow are the
two encrypted images. The one in code-book mode can still be
somewhat made out, while the second is completely random. Although
these are encrypted with 2 different algorithms (AES and DES) it
does effectively show the need for encryption modes beyond code-book.
Code-Book Mode Encrypted Image
|
Counter Mode Encrypted Image
|
4: Cracking a Weak Version of RSA
For this I worked on finding the message from an RSA keys with a public
exponent of three. If the same message was encrypted with three different
keys with public exponents of three the message can be recovered by
the Chinese-Remainder-Theory.
6: Port Scanner and SYN-Flood
Both the port scanner and SYN-Flood attack were implemented in Python
using scapy. My implementation of the port scanner also included sending
"RST" packets to close the half open connections.