Git Product home page Git Product logo

eecs4760's Introduction

EECS4760 - Computer Security

Build status

This repository contains project code and samples for EECS4760 (Computer Security) for the Fall 2016 Semester at the University of Toledo.

Projects

  • DES - An implementation of the Data Encryption Standard (ECB and CBC Mode)
  • FStats - Collects statistics about files (Used for analyzing encryption effectiveness)

Building

You can build in VS or via the cake wrapper. Simply invoke .\build.ps1 to build the solution in Release mode. All configurations (Release, Debug) are built for the x64 architecture.

To run a quick encryption test, use .\build.ps1 test instead. This encrypts the shakespeare file and then decrypts it. Then, it compares the hash of the original plaintext to that of the decrypted ciphertext. This test is run in both ECB and CBC mode.

PDF-ifying the Source

The DES project spec requires all source be concatenated into a PDF. You can get halfway there with the concat cake task. This will output concat.cxx into the project root directory. You can now use tohtml to colorize the source, and then copy / paste the colorized source into Google Docs / your word editor of choice and finally convert to PDF.

I haven't found an online API to convert from html to pdf yet...

License

All projects are licensed under the MIT License unless otherwise stated. See the LICENSE file in the root of this repository for details.

eecs4760's People

Contributors

nlowe avatar

Watchers

 avatar James Cloos avatar

eecs4760's Issues

Create powershell script to concat source into PDF

Please place in your ZIP/7-Zip archive a (single) PDF of (all of) your code. If your source code is in
multiple files, then gather them all up into the PDF. There should be a SINGLE file (this PDF) in your
archive that comprises all I should need to print in order to see all of your code. I should not have to go
digging through your directories to gather up your source files.

Because reasons...

Write Analysis Program

You are required to ALSO write a second program that will analyze the input and output files, and do
some statistical analysis on each. Use Excel (or MATLAB, if you wish) as necessary to create graphs
and tables. Think here in terms of letter-frequency, bit-frequency, di- and tri-graph analysis, averages
and standard deviations, distributions (normal, uniform, etc.), and create some measure of how well
DES obscures input patterns in the output file.

Test CBC Mode

Although not required by undergrads, we have the code. We should make sure it works or throw Not Implemented.

Prevent Weak and Semi-Weak keys

We should prevent Weak and Semi-Weak keys by default, and warn on possibly weak keys by default. Provide the following options:

  • Weak Keys
    • ENFORCE_NO_WEAK_KEYS (default): Exit with error code when used
    • WARN_WEAK_KEYS: Print a warning when used
    • NOENFORCE_WEAK_KEYS: Don't even check for weak keys
  • Semi-Weak Keys:
    • ENFORCE_NO_SEMI_WEAK_KEYS (default): Exit with error code when used
    • WARN_SEMI_WEAK_KEYS: Print a warning when used
    • NOENFORCE_SEMI_WEAK_KEYS: Don't even check for semi-weak keys
  • Possibly Weak Keys:
    • ENFORCE_POSSIBLY_WEAK_KEYS: Exit with error code when used
    • WARN_POSSIBLY_WEAK_KEYS (default): Print a warning when used
    • NOENFORCE_POSSIBLY_WEAK_KEYS: Don't even check for possibly weak keys

Weak Keys

  • 0x0101010101010101
  • 0x1F1F1F1F0E0E0E0E
  • 0xE0E0E0E0F1F1F1F1
  • 0xFEFEFEFEFEFEFEFE

Semi-Weak Keys

  • 0x01FE01FE01FE01FE and 0xFE01FE01FE01FE01
  • 0x1FE01FE00EF10EF1 and 0xE01FE01FF10EF10E
  • 0x01E001E001F101F1 and 0xE001E001F101F101
  • 0x1FFE1FFE0EFE0EFE and 0xFE1FFE1FFE0EFE0E
  • 0x011F011F010E010E and 0x1F011F010E010E01
  • 0xE0FEE0FEF1FEF1FE and 0xFEE0FEE0FEF1FEF1

Possibly Weak Keys

0x1F1F01010E0E0101    0xFEE01F01FEF10E01    0xFE1FE001FE0EF101    0x1FE0FE010EF1FE01
0xE00101E0F10101F1    0xE0011FFEF1010EFE    0x0101E0E00101F1F1    0x0101FEFE0101FEFE
0x011F1F01010E0E01    0xE0FE1F01F1FE0E01    0xE01FFE01F10EFE01    0x01FEFE0101FEFE01
0xFE1F01E0FE0E01F1    0xFE1F1FFEFE0E0EFE    0x1F1FE0E00E0EF1F1    0x1F1FFEFE0E0EFEFE
0x1F01011F0E01010E    0xFEE0011FFEF1010E    0xFE01E01FFE01F10E    0x1FE0E01F0EF1F10E
0xFE011FE0FE010EF1    0x1FFE01E00EFE01F1    0x1F01FEE00E01FEF1    0xFEFEE0E0FEFEF1F1
0x01011F1F01010E0E    0xE0FE011FF1FE010E    0xE001FE1FF101FE0E    0x01FEE01F01FEF10E
0xE01F1FE0F10E0EF1    0x01FE1FE001FE0EF1    0x011FFEE0010EFEF1    0xE0FEFEE0F1FEFEF1
0xE0E00101F1F10101    0xE0E01F1FF1F10E0E    0x01E0E00101F1F101    0x01E0FE1F01F1FE0E
0xFE0101FEFE0101FE    0x1FE001FE0EF101FE    0x1F01E0FE0E01F1FE    0xFEE0E0FEFEF1F1FE
0xFEFE0101FEFE0101    0xFEFE1F1FFEFE0E0E    0x1FFEE0010EFEF001    0x1FFEFE1F0EFEFE0E
0xE01F01FEF10E01FE    0x01E01FFE01F10EFE    0x011FE0FE010EF1FE    0xE0E0FEFEF1F1FEFE

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.