CS468 Secure Programming and Systems
|| Innovation Hall 134
|| Tuesday, Thursday 12:00 - 1:15
|| Dr. Robert Simon
|| 5322 Engineering Building
|| simon AT cs dot gmu dot edu
|| Tuesday 2:15 to 3:15, or by appointment
This course is designed to provide students with an understanding of the theoretical underpinnings of modern security systems, along with the principles of secure system and protocol design. This course is intended for upper-division computer science students, along with other students whom possess the required programming and system software background. As part of the class students will gain the knowledge and experience of programming and validating a secure and distributed application. Successful completion of this class will give students some of the basic tools in how to design and implement secure systems.
Grade of C or better in CS310 and either CS 365 or CS 367.
Cryptography and Network Security: Principles and Practice, 5/E by William Stallings.
Publisher: Prentice Hall
- Secure Programming
- Secure Systems
- Securing Networks and Distributed Systems
All class materials, including lecture notes, are available through your blackboard accounts.
There will be several programming projects in cryptography, malware and secure communication. All projects will be programmed using the C language.
- If your code does not compile, you will get no credit.
- Assignments and Projects are individual efforts.
- We reserve the right to use MOSS to detect plagiarism.
Your grade will be calcuated as follows:
- 40% Programming Projects
- 10% Class participation and short written homework assignments
- 25% Midterm exams
- 25% Final exam
No credit if your project does not compile. Projects are due at the start of class, not during class. Late assignments/projects lose 10% credit per day and will not be accepted
3 days after the due date.
No early exams will be given. If you must miss an exam an makeup will be arranged at the discretion of the instructor, provided
you have a written and verified excuse.
- Describe the fundamental ethical responsibilities computer scientists have in securing and protecting computers.
- Explain basic mathematical principles underlying encryption algorithms.
- Explain basic mathematical principles underlying authentication algorithms.
- Demonstrate an understanding of cryptographic protocols.
- Demonstrate an understanding of secure programming via attack models and vulnerability analysis.
- Demonstrate an understanding of the fundamentals of secure software design.
- Describe how Operating Systems implement security for critical system components.
- Explain formal security policy models for access control.
- Explain network and transport level security protocols with IPSec.
- Illustrate fundamental understanding of security principles by programming projects in cryptography, secure programming and communications.
GMU Academic Calendar
Disability Resource Center