2021-2022 Catalog [ARCHIVED CATALOG]
|
CSIA 245 - Cryptography/Secure Coding Theory and Application PREREQUISITES/COREQUISITE: SDEV 140 - Introduction to Software Development .
PROGRAM: Cyber Security/Information Assurance CREDIT HOURS: 3 LECTURE HOURS: 3 DATE OF LAST REVISION: Fall, 2014
Students will learn about cryptography as an indispensable resource for implementing strong security in real-world applications. Students will learn why conventional crypto schemes, protocols, and systems are vulnerable. The foundations of cryptography using simple mathematical terms including probability, information theory, computational complexity, number theory, and algebraic approaches will be covered. The students will assess the strength, security, and efficiency of encryption standards and use formal methods to assess their levels of security and efficiency. Discussions on application of security measures and the challenges associated with each will be covered. Part of a layered security approach begins with implementing good coding practices. Students will cover the steps for writing, testing, and deploying robust and security-enhanced code. Subjects covered include threat modeling, secure code lifecycle, current tools used in the industry, and software maintenance and incident preparedness.
MAJOR COURSE LEARNING OBJECTIVES: Upon successful completion of this course the student will be expected to:
- Discuss and demonstrate classical encryption techniques and ciphers.
- Discuss the basic concepts of probability, random variables and their probability distribution, information theory, and redundancy in natural languages.
- Discuss and demonstrate different types of algorithms used in coding.
- Discuss and demonstrate the use of various private and public key technologies.
- Discuss everyday uses of encryption.
- Demonstrate authentication systems.
- Discuss various types of Cryptographic Attacks.
- Understand the importance of information security in software development.
- Discuss current industry standards, tools, and security practices in software development.
- Examine the principles and goals of secure and quality coding.
- Discuss and design an application guide.
- Understand, analyze, and interpret customer requirements.
- Create design diagrams or artifacts based off of customer requirements.
- Analyze design diagrams and artifacts for weaknesses and apply appropriate security measures.
- Apply proper secure coding and testing techniques.
- Discuss software maintenance and incident preparedness.
COURSE CONTENT: Topical areas of study include - Classical encryption techniques
Types of ciphers
Logons, logins and passwords
Probability, random variables, redundancy in natural languages
Breaking ciphers
Algorithms used in coding
Public and private key systems
Cryptographic attacks
Authentication systems
Current industry secure coding standards
Application guide design
Secure and quality coding principles
Customer needs assessment
Design diagrams and artifacts
Code testing techniques
Error handling
Application logging
Threat modeling
Software maintenance
Incident preparedness
Source Code Control
Kerberos, SSH, Radius and TACACS+ Course Addendum - Syllabus (Click to expand)
|