Security Algorithms And Protocols
The Science of Cryptography
MSCS 630 | Spring 2018
Go to schedule nowSyllabus (.pdf)
This course will introduce the students to fundamental risks, vulnerabilities and threats to mobile and cloud based applications and the countermeasures that must be implemented to reduce risks to these applications and associated infrastructure with a specific focus on cryptography. Topics covered include risk assessment; foundations of cryptography; symmetric and public key cryptography; stream ciphers; block ciphers and hashing algorithms; public key infrastructures; cryptographic algorithms such as RSA, DES, and AES; cryptographic protocols; key exchange protocols such as Diffie-Hellman, RSA and IKE; authentication protocols using Java APIs; and government regulations and cryptographic standards.
- MATH 250 - Discrete Mathematics
- CMPT 422 - Computer Organization and Architecture
- MSCS 501 - Object-Oriented Programming
- MSCS 502 - Advanced Data Structures
This course requires proficiency in the areas of discrete mathematics and algebra. Also, make sure you feel confident in the Java programming language since we will implement some of the algorithms covered.
You will be submitting assignments to GitHub. You will need to create an account upon registration for the course.
Credit Hours: 4
Not sure if this course is right for you?
Quite honestly, this is a difficult course. My recommendation is to attend lectures, write Java programs, study hard, code some more, start your project early, and seek help from the professor when you need it. If this is something you are committed do, this course might be right for you.
Dr. Rivas dreams that at least one student will consider developing a mobile app that implements one of the security algorithms and protocols discussed in this class.
A. Stanoyevitch, Introduction to Cryptography with Mathematical Foundations and Computer Implementations, 1st Ed. 2010. (IC).
N. Ferguson, et.al., Cryptography engineering: design principles and practical applications, John Wiley & Sons, 2011. (CE).
The professor also recommends the following books for further reference:
- J. Katz, et.al., Introduction to Modern Cryptography. 2007
- C. Paar, et.al., Understanding Cryptography: A Textbook for Students and Practitioners. 2010.
Further online resources include:
- iLearn for keeping records of assignment grades.
- Project submission guidelines for this course.
- Coding style guidelines for this course.
- A "how to" guide to use the command line (or "shell").
- The official Java reference (from Oracle).
At the completion of this course, students will be able to:
- Further know cryptography as both art and science.[1,2]
- Understand and correctly use security algorithms and protocols.[1,2,6]
- Correctly identify the most common cryptosystems.[1,2]
- Believe in the security provided by correctly implemented security protocols.[1,2,6]
- Design and implement advanced encryption systems.[1,2,6]
- Enjoy coding advanced algorithms in Java.[1,2,5]
- Embrace the opportunity to develop a complex system over the course of the semester where you have to either live with your prior mistakes and shortcuts or go back and fix them. (Either will teach the student a valuable lesson).[1,2,5]
- Practice finding some answers for themselves, because capable problem solvers never stop learning.[1,2,5]
Numbers in square brackets indicate the specific goals of the Department of Computing Technology that are being fulfilled.
The weekly coverage might change as it depends on the progress of the class. However, you must keep up with the reading assignments.
|1||1/15-1/19||Introduction to Cryptography.
Reading assignment: IC: Chapter 1. CE: Chapters 1 and 2.
Homework 0, Project, and Lab 1 assigned.
|2||1/22-1/26||Divisibility and Primes.
Reading assignment: IC: Ch. 2 up to pp. 52. CE: Ch. 10.
Lab 2 assigned.
|3||1/29-2/2||Congruences and Modular Arithmetic.
Reading assignment: IC: Chapter 2 start from pp. 52.
|4||2/5-2/9||Codemaking State of The Art.
Reading assignment: IC: Chapter 3.
Project - proposal due.
Reading assignment: IC: Chapter 4.
Lab 3 assigned.
Codebreaking State of The Art.
Reading assignment: IC: Chapter 5.
Lab 4 assigned.
Representation of Integers in Different Bases.
Reading assignment: IC: Chapter 6.
Reading assignment: IC: Chapter 7. CE: Chapters 3 and 4.
Lab 5 assigned.
|3/12-3/16||No class. Spring break.|
|9||3/19-3/23||Numbter Theory and Algorithms.
Reading assignment: IC: Chapter 8.
|10||3/26-3/30||Public Key Cryptosystems.
Reading assignment: IC: Chapter 9. CE Chapters 11 and 12.
|11||4/2-4/6||Introduction to Finite Fields and GF(28).
Reading assignment: IC: Chapter 10.
Project - milestone due.
Reading assignment: IC: Chapter 11.
Reading assignment: CE: Chapter 5.
|5/7||Project - writeup due.|
|5/8||Final Exam at 1pm.|
Grades will be assigned based on the following breakdown:
Homework and Labs: 30%
Final project: 20%
Midterm exam: 20%
Final exam: 20%
Letter Grade Distribution
Final letter grades will be assigned at the discretion of the
instructor, but here is a minimum guideline for letter grades:
A: 100-95, A-: <95-90,
B+: <90-87, B: <87-83, B-: <83-80,
C+: <80-77, C: <77-73, C-: <73-70,
D+: <70-65, D: <65-60,
- The class website contains the official course information (reev.us/mscs630s18). Please check it regularly for updates.
- All work in this course is strictly individual, unless the instructor explicitly states otherwise. While discussion of course material is encouraged, collaboration on assignments is not allowed. Collaboration includes (but is not limited to) discussing with anyone (other than the professor) anything that is specific to completing an assignment. You are encouraged to discuss the course material with the professor, preferably in office hours, and also by email.
- Bring any grading correction requests to your professor's attention within 2 weeks of receiving the grade or before the end of the semester, whichever comes first.
- Grades in the C range represent performance that meets expectations; Grades in the B range represent performance that is substantially better than the expectations; Grades in the A range represent work that is excellent.
- Grades will be maintained in the LMS course shell. Students are responsible for tracking their progress by referring to the online gradebook.
Attendance and Absences
- Attendance is expected and will be taken each class. You are allowed to miss 2 classes during the semester without penalty. Any further absences will result in point and/or grade deductions.
- A total of 8 absences will automatically cause an F grade.
- Students are responsible for all missed work, regardless of the reason for absence. It is also the absentee's responsibility to get all missing notes or materials.
In addition to skills and knowledge, Marist College aims to teach students appropriate Ethical and Professional Standards of Conduct. The Academic Honesty Policy exists to inform students and Faculty of their obligations in upholding the highest standards of professional and ethical integrity. All student work is subject to the Academic Honesty Policy. Professional and Academic practice provides guidance about how to properly cite, reference, and attribute the intellectual property of others. Any attempt to deceive a faculty member or to help another student to do so will be considered a violation of this standard.
Instructor's Intended Purpose
The student's work must match the instructor's intended purpose for an assignment. While the instructor will establish the intent of an assignment, each student must clarify outstanding questions of that intent for a given assignment.
The student may not give or get any unauthorized or excessive assistance in the preparation of any work.
The student must clearly establish authorship of a work. Referenced work must be clearly documented, cited, and attributed, regardless of media or distribution. Even in the case of work licensed as public domain or Copyleft, (See: http://creativecommons.org/) the student must provide attribution of that work in order to uphold the standards of intent and authorship.
Online submission of, or placing one's name on an exam, assignment, or any course document is a statement of academic honor that the student has not received or given inappropriate assistance in completing it and that the student has complied with the Academic Honesty Policy in that work.
An instructor may impose a sanction on the student that varies depending upon the instructor's evaluation of the nature and gravity of the offense. Possible sanctions include but are not limited to, the following: (1) Require the student to redo the assignment; (2) Require the student to complete another assignment; (3) Assign a grade of zero to the assignment; (4) Assign a final grade of "F" for the course; and (5) Notify the Dean of the School of Computer Science and Mathematics about the issue. A student may appeal these decisions according to the Academic Grievance Procedure. (See the relevant section in the Student Handbook.) Multiple violations of this policy will result in a referral to the Conduct Review Board for possible additional sanctions.
Dr. Rivas takes academic honesty very seriously, after all, he also teach Ethics. Many studies, including one by Sheilah Maramark and Mindi Barth Maline have suggested that "some students cheat because of ignorance, uncertainty, or confusion regarding what behaviors constitute dishonesty" (Maramark and Maline, Issues in Education: Academic Dishonesty Among College Students, U.S. Department of Education, Office of Research, August 1993, page 5). In an effort to reduce misunderstandings, here is a minimal list of activities that will be considered cheating in this class:
- Using a source other than the optional course textbooks, the course website, or your professor to obtain credit for any assignment.
- Copying another student's work. Simply looking over someone else's source code is copying.
- Providing your work for another student to copy.
- Collaboration on any assignment, unless the work is explicitly given as collaborative work. Any discussion of an assignment or project is considered collaboration.
- Studying tests or using assignments from previous semesters.
- Providing someone with tests or assignments from previous semesters.
- Turning in someone else's work as your own work.
- Giving test questions to students in another class.
- Reviewing previous copies of the instructor's tests without permission from the instructor.
Data for Research Disclosure
Any and all results of in-class and out-of-class assignments and examinations are data sources for research and may be used in published research. All such use will always be anonymous.
About The Professor
Pablo Rivas is a professional member of the ACM and IEEE. His degrees are in computer science (B.S. '03), electrical engineering (M.S. '07), and electrical and computer engineering (Ph.D. '11 from the University of Texas at El Paso). Currently, He is an Assistant Professor of Computer Science at Marist. Before that, he was a postdoc at Baylor University.
At Baylor he had the opportunity to work on different aspects of machine learning, data science, big data, and large-scale pattern recognition. Perhaps you have heard on NPR about one of his most recent projects on the detection of leukocoria (see leuko.net for more info), where they used deep learning and image-processing techniques, which he loves. Another recent research project originated after an internship at NASA Goddard Space Flight Center where he worked in the detection of a particular kind of atmospheric particle using different machine learning methods. He currently works to make that remote sensing project available on-line in real time.
In the past he worked as Software Engineer for about 8 years; thus, he is quite familiar with programming languages, particularly C++, Java, and Python, but he likes to use MATLAB in order to save time when developing the prototypes of his algorithms.
He has been recognized for his creativity and academic excellence; for instance, he received the IEEE Student Enterprise Award in 2007, and the Research Excellence Award from the Paul L. Foster Health Sciences School of Medicine of Texas Tech University in 2009. In 2011, he had the honor of being inducted to the International Honor Society Eta Kappa Nu (HKN).
When he is not having fun doing research or teaching, he also likes to play basketball, code, eat pizza with friends, or go to the movie theater with his beautiful wife Nancy.
How to Contact The Professor
Dr. Rivas' office number is 3040 @ the Hancock Center, and office hours are:
- Tuesdays 9:30-11:30 AM
- Wednesdays 5:00-6:00 PM
- Fridays 2:00-3:00 PM
He is glad to talk to students during and outside of office hours. If you can't come to his office hour, please make an appointment for another time, or just stop by if you see the door open. If you are going to stop by it is a good idea to check his schedule and call first to make sure he is there; the number is (845) 575 3000 x2086.
If extra help is needed, there are private tutors available at the student's expense at Marist's Academic Learning Center.
Note: Any student who needs learning accommodations should inform Dr. Rivas immediately at the beginning of the semester. The student is responsible for obtaining appropriate documentation and information regarding needed accommodations from the Office of Special Services in Donnelley 226 (or online here) and providing it to the professor early in the semester.
Pablo Rivas © 2018. All rights reserved. | Valid HTML | Valid CSS