01:198:442:01: Introduction to Computer Security
Fall 2008
Quick Links:
[
General information
|
Course overview
|
Syllabus
|
Schedule
|
Homeworks
|
Project
|
Grading
|
Resources
]
General information
-
Course number: 01:198:442:01, Index: 14120.
-
Instructor:
Vinod Ganapathy
(contact information).
-
Class hours: Monday and Wednesday, 5:00pm-6:20pm.
-
Class location:
ARC-105.
-
Recitations: Wednesday, 6:55pm-7:50pm.
-
Recitation location:
ARC-205.
-
Instructor's office hours: TBD.
-
Teaching assistant: TBD.
-
Teaching assistant's office hours: TBD.
-
Required textbook:
TBD. (will be announced shortly)
Additional reference:
Security Engineering (free online copy),
by Ross Anderson.
-
Prerequisites:
- 01:198:205 or 14:332:202, Discrete Mathematics (required)
- 01:198:416, Operating Systems (required)
- 01:198:352, Internet Technology is strongly recommended (though not required).
Note that these pre-requisites can be waived upon consent by the instructor.
Announcements
[
Old announcements
]
Course overview
This course will be an undergraduate-level introduction to computer security
and is targetted towards seniors, advanced juniors and first year graduate
students. We will cover both classic topics, such as applied cryptography,
authentication, authorization and basic security principles, as well as recent
topics such as Web security and virtual machines for security. For several
topics in the course (especially recent topics), we will occasionally read,
in addition to our textbook, research papers describing the state of the art.
Syllabus
The following is an approximate list of topics that we will cover.
- Overview: Confidentiality, Integrity, Availability. Security
policy and mechanism. Basic principles of secure system design.
- Cryptography: Basic crypto primitives, Secret key crypto, Public
key crypto, Digital signatures, Message authentication, Secret sharing,
Oblivious transfer, Bit commitment schemes.
- System security: Authentication, Access Control, Discussion of
popular systems and security protocols.
- Network security: Network protocols and attacks, Intrusions and
Intrusion Detection, Firewalls, Viruses, Worms, Web security.
- Software security: Memory errors and exploits, Isolation,
Language-based analysis techniques, Secure coding practices.
- Advanced topics: (time permitting) Virtual machines, Information
flow, Privacy, Anonymity.
Schedule
Links to class handouts and research papers referenced on the schedule
below are accessible from machines on the rutgers.edu domain.
| Date |
Topics |
Reference |
Slides |
| TBD |
TBD |
TBD |
TBD |
Homeworks
There will be three homeworks over the course of the semester,
some of which will involve programming (in C and assembly). In
addition, there will also be a final project that will involve
a significant amount of programming (in Java).
- Homework 1: Topic: Cryptography and security protocols.
- Homework 2: Topic: Exploiting buffer overflows.
- Homework 3: Topic: Network security.
Project
The course project will involve implementing a security protocol for one of
e-voting, e-poker, or e-cash. Alternately, we are also considering a project
(coordinated with 198:416, Operating Systems) that will involve implementing a
security mechanism or a security protocol on a Linux smart phone (details are
still being worked out). In either case, the course project will involve a
significant programming component. The project will be available soon after
the mid-term. Details will be announced here over the course of the semester.
Grading
- Homeworks (30%). There will be three homeworks during the course
of the semester.
- Mid-term (20%). The mid-term will be held during the first
week of March and will be based upon topics covered until then.
- Final exam (30%). The final exam will be held during the last
week of the semester and will be based upon topics covered during the entire
semester.
- Project (20%). The course project will be a significant exercise
involving the implementation of concepts covered in class.
Resources
Organizations
Tips to read an academic paper
Tips for good technical writing
You will find these sources useful for technical writing (e.g., project
reports).
-
Writing a technical paper, by Professor Michael Ernst, MIT.
-
Tips for writing technical papers, by Professor Jennifer Widom, Stanford
University.
-
Writing suggestions, by Professor Barton Miller, University of Wisconsin.
-
Three sins of authors in Computer Science and Math, by Professor Jonathan
Shewchuk, UC Berkeley.
-
How to write a dissertation, by Professor Douglas Comer, Purdue University
(most of the content on this page applies to all forms of technical writing).
-
On writing, by Professor Terence Tao, UCLA (though the advice is geared
towards mathematicians, most of the tips apply to other academic prose as well).
- The elements of style
by William Strunk Jr. and E. B. White (follow the "External links"
at the bottom of this page for online copies of this book).
Vinod Ganapathy