RC6 Block Cipher

Ukončen Zveřejněno před 1 rokem K zaplacení v momentě doručení
Ukončen K zaplacení v momentě doručení

Introduction

RC6 is a symmetric key block cipher designed for the Advanced Encryption

Standard (AES) competition, where it was a finalist. Although it is a proprietary algorithm designed by RSA Laboratories and RSA Security, the design’s

patents expired between 2015 and 2017. The algorithm is now in the public

domain, after the internals were published by Ronald Rivest in 19981.

2 Directions

1. Download the paper and read sections 1 (Introduction) and 2 (Details of

RC6) at minimum.

2. Implement RC6-w/r/b where w = 32, r = 20 and b = |key|, 0 < b ≤ 255

in bytes, see section 3. You may use any language you want, however your

implementation must run on Remote with available libraries.

3. Bonus! Write unit tests for your implementation using the test vectors

from the appendix in both the encryption and decryption modes. If your

implementation passes these tests, you will earn 25 points of extra credit.

You may use any available test suite for your language, e.g.

BoostTest for C++, CUnit for C or C++, CUnit for C, Pytest for Python,

etc.

1Rivest, Ronald L., et al. “The RC6TMblock cipher.” First Advanced Encryption Standard

(AES) Conference. 1998. [login to view URL]

1

3 Implementation

Implement RC6-w/r/b where w = 32, r = 20 and b = |key|, 0 < b ≤ 255 in

bytes. Your program must have a command line interface that accepts an input

file and produces an output file: run INPUT OUTPUT, where INPUT is the path

to the input file, and OUTPUT is the path to the output file.

The input of your program is a path to an input file containing three lines:

The first line specifies the mode, either encryption or decryption. The second

line is the plaintext (for encryption mode) or ciphertext (for decryption mode).

The third line is the user key. Both plaintext/ciphertext and the user key consist

of a label string ending in a colon, then a space-separated list of hexadecimal

byte values. The file ends with a Unix line ending character (\n).

The output of your program is a text file located at the path specified on the

command line: The first and only line is the ciphertext (for encryption mode)

or plaintext (for ciphertext). Like the input file, the line begins with a label

string ending in a colon, then a space-separated list of hexadecimal bytes. The

input files are presumed to be well-formed; you do not need to test the files for

proper format.

See the listings in subsection 3.1.

3.1 Examples

input [login to view URL]

encryption

plaintext : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

userkey : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

output [login to view URL]

ciphertext : 8f c3 a5 36 56 b1 f7 78 c1 29 df 4e 98 48 a4 1e

input [login to view URL]

decryption

ciphertext : 8f c3 a5 36 56 b1 f7 78 c1 29 df 4e 98 48 a4 1e

userkey : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

output [login to view URL]

plaintext : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

4 Submitting Work

If your language is compiled, include a Makefile that has, at minimum, an all

target that builds the project and produces an executable called run, and a

2 clean target that removes the executable and any intermediate files generated.

If you implement the test cases, also include a target test that builds the test executable. If your language is interpreted, name the script file run.<extension>,

and include a “hashbang” on the first line.

Use a README file to document how the program should be executed.

Include at minimum:

• Instructions to build your executable for compiled languages.

• Command line interface usage instructions for your implementation.

• Acknowledgements of assistance you received and citations for works to

which you referred.

Place all your files under one directory with a unique name. Archive the contents of this directory

(do not include executable binaries or intermediate files!) using the following

command:

tar -cvf <directory_name>.tar <directory_name>

For example,

tar -cvf [login to view URL] p1-project

Bezpečnost počítače Programování v C Encryption

Identifikační číslo projektu: #33350327

O projektu

4 nabídek Projekt na dálku Aktivní před 1 rokem

4 Freelnceři na tento projekt zveřejňují nabídky v průměru $72

JawadIT

Hi there. I am a ISO Standard Expert and a Software Developer since 10 years. I have developed Encryption / Decryption based on AES, DES, 3DES, RSA and ByCrypt etc. I have checked your requirements and can develop Další

$100 USD za 1 den
(26 Recenzí)
5.1
ExpertEverlyne

HELLO DEAR EMPLOYER, First receive warm greetings, and hoping you are good, i welcome you to the home of Amazing services and quality. I have carefully gone through your project titled ((RC6 Block Cipher)) I'M AN EXPE Další

$20 USD za 1 den
(0 Recenzí)
0.0
nicoriaflorin17

Hello, I am student at a CiberSecurity Master Degree program and I would gladly implement and test the RC6 variant. I am also a Software Developer with 1 year experience and I consider that i can meet your requirements Další

$16 USD za 7 dní
(0 Recenzí)
0.0