GithubHelp home page GithubHelp logo

c361_aes_128's Introduction

CS361 Foundations of Security. Assignment 4 (AES-128) MIT license

Description

Java project by me and @Ovais. Done for CS f361, taught by the amazing Dr. Bill Young in the summer of 2016. For assignment details, please look here

There are 7 java files:

  • In AES.java, we implemented the driver main method and some helpers to it.
  • In Utility.java, we implemented each of the steps of the encryption/decryption process. Each in a different method, with some having companion helper methods.
  • MixColumns.java, is pretty much the exact code provided to us by Dr. Young, with slight modifications.
  • Constants.java, has no code, but rather some constant arrays that we got from the internet and the project specs.
  • AddRoundKey.java, is responsible for key expansion.
  • Reader.java, reads from a file.
  • Writer.java, writes to a file.

We both worked together on this project, mostly on the same screen, however, we did work remotely for some parts, in those times, saleh worked on AES.java and Utility.java implementing most of it, while ovais finished working on and testing AddRoundKey.java. To compile the program, you need to use

javac *.java

To run the program, you need to use

java AES <e or d> <keyfile> <inputfile>

Finish

We finished all of the requirements for this assignment. as far as I know, there are no bugs.

Test Cases

Test Case 1

  • Command line
$ e keyFile inputFile1
  • Timing Information 27 milsec
  • Input Filenames inputFile1
  • Output Filenames inputFile1.enc

Test Case 2

  • Command line
$ d keyFile inputFile1.enc
  • Timing Information 40 milsec
  • Input Filenames inputFile1.enc
  • Output Filenames inputFile1.enc.dec

Test Case 3

  • Command line
$ e keyFile inputFile2
  • Timing Information 72 milsec
  • Input Filenames inputFile2
  • Output Filenames inputFie2.enc

Test Case 4

  • Command line
$ d keyFile inputFile2.enc
  • Timing Information 62 milsec
  • Input Filenames inputFile2.enc
  • Output Filenames inputFile2.enc.dec

Test Case 5

  • Command line
$ e keyFile inputFile3
  • Timing Information 63 milsec
  • Input Filenames inputFile3
  • Output Filenames inputFie3.enc

Test Case 6

  • Command line
$ d keyFile inputFile3.enc
  • Timing Information 56 milsec
  • Input Filenames inputFile3.enc
  • Output Filenames inputFile3.enc.dec

c361_aes_128's People

Watchers

James Cloos avatar Saleh Alghusson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.