Find Jobs
Hire Freelancers

RC6 Block Cipher

$10-20 USD

Closed
Posted about 2 years ago

$10-20 USD

Paid on delivery
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
Project ID: 33350327

About the project

4 proposals
Remote project
Active 2 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
4 freelancers are bidding on average $72 USD for this job
User Avatar
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 this RC6 AES Cipher Solution for you within few hours on Java language. You may contact for further disucssion.
$100 USD in 1 day
4.9 (26 reviews)
5.1
5.1
User Avatar
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 EXPERT IN NAMED SKILLS, OVER 18 YEARS OF EXPERIENCE, After KEENLY reading your description and being in possession of all CLEARLY STATED REQUIRED SKILLS ((Computer Security, Encryption and C Programming)) as this is my area of PROFESSIONAL SPECIALISATION having the above QUALIFICATIONS, i hereby humbly request you to consider my bid for QUALITY and PROFESSIONAL work. ###// No timeline & Quality Excuses// Unlimited Revisions// 100% SATISFACTION GUARANTEED### Message Me We Discuss More About The Project. incase the project is deleted please hire me directly using the following link; https://www.freelancer.com/u/ExpertEverlyne THANK-YOU & WELCOME.
$20 USD in 1 day
0.0 (0 reviews)
0.0
0.0
User Avatar
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.
$16 USD in 7 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of UNITED STATES
maryland, United States
5.0
1
Payment method verified
Member since Mar 27, 2022

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.