Clark Atlanta University

 

Information Assurance Design

CIS 471: Introduction to Algorithms

 

Overview:

  • Description
  • Objective
  • Goals/Outcome
  • Outline
  • Suggested Assignments
  • References

 

Suggested Time:  4 class periods

 
 

 

 

 

 

 

 

 

 

 

 

 

Course Length: 3 Hours

Pre-Requisite  : CIS 221, CIS 123

 

                                                                                                                                                                                                                                                                                                                                                                                                                                   

 

 

 

 

 

 

 

 

 
 

 

 

 

 


     Target Audience

                                                   Levels

Disciplines

CS

 

CIS

Undergraduate

x

 

x

Graduate

 

 

 

                       

Description:

This course will discuss Information Assurance concepts related to computer algorithms.  It will highlight methods of securing computing systems using cryptographic algorithms.  It will also discuss vulnerabilities concerning these algorithms, password cracking, and determining an acceptable level of risk. 

 

 

 

 

 

 

Objective(s):

The primary purpose of this course is to:

·        Provide an understanding various methods of encryption and cryptography.

·        Identify methods of cryptanalysis.

·        Provide an understanding of terminology related to secure algorithms.

·        Discuss methods for password cracking.

·        Provide an understanding of risk analysis and developing and acceptable level of risk.

 

 

 

 

 

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Goals/Outcome:

The students will be able to:

  • Learn about different encryption algorithms.
  • Identify elements of a good encryption algorithm.
  • Differentiate between secret key cryptography and public key cryptography and identify methods of implementing each.
  • Learn methods of cryptanalysis.
  • Identify vulnerabilities encryption and cryptographic algorithms.
  • Identify good IA practices for Software Engineering.
  • Identify several techniques for password cracking
  • Understand how to assess risks.

 

 

 

 

 

Outline:

  • Terminology

Ø      Cryptosystem

Ø      Encryption/Decryption

Ø      Cipher

  • Cryptography

Ø      Secret Key Cryptography

o       Block Ciphers

o       Hash Algorithms

o       Stream Ciphers

Ø      Public Key Cryptography

Ø      Vulnerabilities

o       Trapdoors

  • Encryption Algorithms

Ø      Symmetric and Asymmetric Keys

Ø      Representing Characters

Ø      Substitutions

Ø      Popular Encryption Algorithms ( Student Assignment)

Ø      Vulnerabilities of Encryption

o       Hackers

o       Cryptanalysts

  • Properties of “ Trustworthy Encryption Systems

Ø      Sound Mathematics

Ø      Reliable Analysis

Ø      Time (Pfleegler pg. 59)

·        Methods of Cryptanalysis

Ø      Finding Patterns

Ø      Inferring Meaning

Ø      Key Deduction

Ø      General Encryption Weaknesses

  • Password Cracking

Ø      Dictionary Attacks

Ø      Exhaustive/Brute Force Attacks

Ø      Probable Passwords

Ø      Encrypted Password List

Ø      Hybrid Attacks

  • Protecting Passwords
  • Acceptable Level of Risk

Ø      Risk Analysis

Ø      Error Analysis

Ø      Fault Tolerance

 

 

 

 

Suggested Assignments:

  • Students will write a program to simulate an encryption or cryptographic algorithm.
  • Students will develop a software program for cracking a password. Students may use any method for password cracking. 

 

 

 

References:

·        “Cryptographic Algorithms.” Kremlin Powerful Security for a Powerful World April 19, 2005  http://www.kremlinencrypt.com/algorithms.htm

·        Pfleeger, Charles P. and Shari Lawrence. Security in Computing. Upper Saddle River, NJ: Prentice-Hall, 2003.