Hash Algorithms and Applications: Password Hashing and Beyond — Topics & Learning Outcomes

📋 Module Topics🎯 Student Learning Outcomes

Module Topics

Introduction to Hashing Algorithms

This topic introduces the foundational concepts of hashing algorithms, explaining what hash functions are and how they transform input data into fixed-length outputs. It establishes the vocabulary and core principles needed for deeper exploration throughout the module.

Cryptographic Hash Functions

This topic examines the properties that distinguish cryptographic hash functions from general-purpose hash functions, including collision resistance, preimage resistance, and avalanche effect. Students explore widely used algorithms such as SHA-256 and MD5 and understand their roles in security contexts.

Password Hashing Fundamentals

This topic covers how hashing is applied specifically to password storage, explaining why plain-text and simple-hash storage are insecure. Students learn how systems use dedicated password hashing algorithms to protect user credentials at rest.

Salting and Advanced Password Protection Techniques

This topic explores salting as a critical technique for defending against rainbow table and dictionary attacks, detailing how random salts are generated and stored alongside password hashes. It also introduces concepts such as key stretching and modern algorithms like bcrypt, scrypt, and Argon2.

Ensuring Data Integrity with Hashing

This topic demonstrates how hash functions are used beyond passwords to verify the integrity of files, messages, and software distributions. Students examine real-world use cases including checksums, digital signatures, and hash-based message authentication codes (HMACs).

Common Attacks and Vulnerabilities

This topic identifies the most significant threats against hashing implementations, including brute-force attacks, collision attacks, and rainbow table lookups. Students learn to recognize weak hashing practices and understand the conditions under which hash-based security can fail.

Best Practices and Real-World Applications

This topic synthesizes the module by presenting industry best practices for implementing hashing securely in modern software systems. Students explore practical applications across authentication, blockchain, digital forensics, and secure communications.

Student Learning Outcomes

By the end of this module, students will be able to:

MO1
Distinguish between hashing and encryption, and compare the security properties of cryptographic hash functions — including preimage resistance, collision resistance, and the avalanche effect — across algorithms such as MD5 and SHA-256
Level: AnalyzeType: CognitiveCourse mapping: CO1
MO2
Explain why dedicated password hashing algorithms (bcrypt, scrypt, Argon2) with salting and work factors provide stronger protection than applying general-purpose cryptographic hash functions directly to passwords
Level: UnderstandType: CognitiveCourse mapping: CO4
MO3
Evaluate common attack vectors — including brute-force, rainbow table, collision, timing, and dictionary attacks — and select appropriate countermeasures such as salting, peppering, key stretching, and HMAC-based authentication to mitigate each threat
Level: EvaluateType: CognitiveCourse mapping: CO2
MO4
Apply hash-based integrity mechanisms — including checksums, HMACs, and digital signatures — to real-world scenarios such as software distribution verification, secure communications, and digital forensics evidence handling
Level: ApplyType: BehavioralCourse mapping: CO2
MO5
Design a secure password storage and verification scheme for an authentication system that incorporates a modern password hashing algorithm, cryptographically secure salt generation, and work factor tuning aligned with industry best practices
Level: CreateType: BehavioralCourse mapping: CO3

Course Outcomes (reference)

CO1Describe both complex and simple data structures.
CO2Select the correct data structure and algorithm to solve specific problems
CO3Implement data structures and algorithms in computer code.
CO4Analyze the performance of algorithms and data structures