Find Jobs
Hire Freelancers

RC6 Block Cipher

$10-20 USD

已关闭
已发布大约 2 年前

$10-20 USD

货到付款
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
项目 ID: 33350327

关于此项目

4提案
远程项目
活跃2 年前

想赚点钱吗?

在Freelancer上竞价的好处

设定您的预算和时间范围
为您的工作获得报酬
简要概述您的提案
免费注册和竞标工作
4威客以平均价$72 USD来参与此工作竞价
用户头像
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 在1天之内
4.9 (26条评论)
5.1
5.1
用户头像
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 在1天之内
0.0 (0条评论)
0.0
0.0
用户头像
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 在7天之内
0.0 (0条评论)
0.0
0.0

关于客户

UNITED STATES的国旗
maryland, United States
5.0
1
付款方式已验证
会员自3月 27, 2022起

客户认证

谢谢!我们已通过电子邮件向您发送了索取免费积分的链接。
发送电子邮件时出现问题。请再试一次。
已注册用户 发布工作总数
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
加载预览
授予地理位置权限。
您的登录会话已过期而且您已经登出,请再次登录。