CS303 Software development/engineering Fall 2020

Semester: 
Fall

Google classroom

In this course lab, we aim to teach students how the software development cycle works. Our aim is achieved by making students form teams and collaborate to develop an app in a chosen language and framework. This year, we preferred to use javascript language and react native framework to develop mobile apps. Using the help of Github and Google classroom for education, allowed us to work remotely with students to avoid corona virus spreading.

CS428a Pattern Recognition and Machine Learning Spring 2019

Semester: 
Spring

This course is an introduction to the core concepts involved in automated pattern recognition. It is designed to be accessible to newcomers from varied backgrounds. Fundamental concepts of supervised and unsupervised learning are presented. More topics, such as mathematical background, statistical background and image processing are addressed in the course introduction.

References:

https://link.springer.com/book/10.1007%2F978-1-4614-5323-9

Computer Graphics

Semester: 
Fall

By the end of computer graphics course, each student will be able to create a 2D /3D animation scene, 2D/3D game, or any graphics content using Java and OpenGLIn short, the goal of this class is to provide you with sufficient background to write computer graphics applications.

Cryptography

Semester: 
Spring

This course explains the inner workings of cryptographic primitives and how to correctly use them. Students will learn how to reason about the security of cryptographic constructions and how to apply this knowledge to real-world applications. The course begins with a detailed discussion of how two parties who have a shared secret key can communicate securely when a powerful adversary eavesdrops and tampers with traffic. We will examine many deployed protocols and analyze mistakes in existing systems.

ElGayyar, M., E. Emary, N. H. Sweilam, and M. Abdelazeem, "A Hybrid Grey Wolf-Bat Algorithm for Global Optimization", International Conference on Advanced Machine Learning Technologies and Applications: Springer, pp. 3–12, 2018. Abstract
n/a
Aly, H., and M. ElGayyar, "Attacking AES Using Bernstein’s Attack on Modern Processors", Progress in Cryptology – AFRICACRYPT 2013, vol. 7918: Springer Berlin Heidelberg, pp. 127-139, 2013. Abstract

The Advanced Encryption Standard (AES) was selected by NIST due to its heavy resistance against classical cryptanalysis like differential and linear cryptanalysis. Even after the appearance of the modern side-channel attacks like timing and power consumption side-channel attacks, NIST claimed that AES is not vulnerable to timing attacks. In 2005, Bernstein [6] has successfully attacked the OpenSSL AES implementation on a Pentium III processor and completely retrieved the full AES key using his cache timing side-channel attack. This paper reproduces Bernstein’s attack on Pentium Dual-Core and Core 2 Duo processors. We have successfully attacked the AES implemented in the latest OpenSSL release 1.0.1c using the most recent GCC compiler 4.7.0 running on both Windows and Linux in some seconds by sending (2)22 plaintexts at most. We improved Bernstein’s first round attack by using 2 way measurements. Instead of using only the above average timing information, we added the above minimum timing information which significantly improved the results.

Tourism