Security代写:CSE543 Encryption/Decryption Fundamentals Programming

代写一个带GUI的加解密小程序,需要实现包括RSA在内的五个算法。

Requirement

Please write up a program in any language you like to realize the following 5 requirements. A GUI is helpful (please see the attached 2 examples). Please keep in mind, appropriate input(s) should be available and validated before execution to avoid unnecessary errors. Keys are generated based on user’s inputs.

Calculate modulus and inverse modulus

1) For two positive integers a and p, calculate a mod p
2) A number a (>0) has an inverse a ^ -1 such that a × a ^ -1 = 1 (mod p): (Fermat’s Little Theorem)

given:  a mod p
where:  p = prime number
        a < p    
then:   inverse (a ^ -1)= ap-2 mod p
calculate a ^ -1.

Calculate Greatest Common Divisor (GCD) of two positive integers (a, b)

The easiest way to determine the GCD of two positive integers is by using Euclid’s algorithm

Encrypt and Decrypt a simple message using Affine Mapping

Using a, b, c, …, z, and space (27 letters), your defined letter set, or the ASCII table to implement an affine mapping based encryption/decryption.

C = aP + b mod N
P = a'C + b' mod N

Encrypt and Decrypt a simple message using Digraph

Using a, b, c, …, z, and space (27 letters), your defined letter set, or the ASCII table to implement a digraph-based encryption/decryption.

C1 = a P1 + b P2 mod N
C2 = c P1 + d P2 mod N

P1 = a' C1 + b' C2 mod N
P2 = c' C1 + d' C2 mod N

Encrypt and Decrypt a simple message using R.S.A. (public/private keys generation)

  • Divide the message into blocks (e.g., the simplest one: one letter/block) such that the bit string of each block can be viewed as a certain digit number.
  • Call this block P.
  • Public Key (E, n)
  • Encrypt: C = P ^ E mod n
  • Private Key (D, n)
  • Decrypt: P = C ^ D mod n

Delivery

Source codes and compiled executable demo program. Please zip all the files and then drop it to the Project 1 Dropbox. In case your program requires some special settings, please write me a note. So I can run and evaluate it properly.

Grading Rubric

Each module weighs 8 points. Deduction rules are as follows:

  • If one misses half of a module, 4 points are deduced.
  • If a module works with fixed inputs, 2 points deduction will be applied.
  • If a module works marginally (which means some data are fine while others are not), 2 points deduction is then applied.
  • If input validation doesn’t work properly, 1 point will be deducted.