精品深夜AV无码一区二区_伊人久久无码中文字幕_午夜无码伦费影视在线观看_伊人久久无码精品中文字幕

CSC 172代寫、Java/C++程序設計代做

時間:2024-03-19  來源:  作者: 我要糾錯



CSC 172 – Project 1
• You may work on and submit your project individually or in groups of 2 students.
• If you work in a group you will have to prepare an extended README file to specify
who wrote each part of the code for maintaining clarity and transparency within the
group project.
• You are only allowed to cooperate with your group members, and you are not permitted
to share your solution with other students in any way.
Task
You will implement a cipher specified below using Java programming language. It shall
encrypt/decrypt text files including plaintext/ciphertext.
Background
1. Encryption is the process of encoding information or data in such a way that only
authorized parties can access it. This is typically done using algorithms and secret
keys to transform the original data into an unintelligible form known as ciphertext.
2. Plaintext refers to the original, unencrypted data or message that is intended to be
kept confidential.
3. Ciphertext refers to the encrypted form of data or information that has undergone
encryption.
Working with files
To encrypt content of a text file you have to:
• Read the file: open the file you want to encrypt and read its contents into memory.
• Convert to binary.
• Encrypt the data: use the presented encryption algorithm and the user secret key to
encrypt the data read from the file.
• Do NOT convert back to characters.
• Write encrypted data to file: save the encrypted data to a new file.
To decrypt content of a text file you have to:
1
• Read the file: open the file you want to decrypt and read its contents into memory
(content should be just long sequence of zeros and ones).
• Decrypt the data: use the presented decryption algorithm and the user secret key to
encrypt the data read from the file.
• Convert to characters.
• Write decrypted data to file: save the encrypted data to a new file.
1 Algorithm Description
The algorithm encrypts fixed number of bits only (64 bits). To encrypt longer input use the
simple ECB (Electronic Codebook) mode. Here’s how it works:
• Divide the data into blocks: the plaintext data is divided into fixed-size blocks of 64
bits.
• Apply encryption to each block independently: each block of plaintext is encrypted
independently using the same secret key and encryption algorithm. The same key is
used for each block.
• Output the encrypted blocks: the resulting ciphertext blocks are concatenated together
to form the complete ciphertext.
• If the last block doesn’t have enough bits, it needs to be padded to meet the required
block size. This process is known as padding. Use zero padding: append zero bits
to the end of the block until it reaches the required size. (Do not worry about extra
characters at the end when you decrypt.)
Include methods to encrypt/decrypt a single block of plaintext/ciphertext that implements the following symmetric-key encryption algorithm:
2
Your output shall be a block of 64 zeros and ones. (Do not represent the output block in a
Hex notation. If you do that you get -10%.) Encryption and decryption are almost the
same, but for decryption you need to use subkeys in a reverse order: k10, k9, ...k1
3
1. Input Splitting: The plaintext block of 64 bits is divided into two halves of 32 bits.
Let’s denote these halves as L0 and R0.
2. Round Function Application: In each round, a round function f is applied to one
half of the data, typically the right half Ri
, using the round key ki of 32 bits. The
result of the function is then XORed with the other half Li
.
Li+1 = Ri
Ri+1 = Li ⊕ f(Ri
, ki)
3. Swapping: After each round, the halves are swapped so that the left half becomes
the right half, and vice versa.
4. Iteration: Steps 2 and 3 are repeated 10 times.
5. Output Concatenation: After all rounds are completed, the final output consists of
the two halves (L10 and R10) concatenated together. This forms the ciphertext.
1.1 The f - function
The f - function (round function) works as follows:
1. XOR gate: The 32 input bits are XORed with the round key ki
.
2. Splitting: The 32 bits are divided into four pieces of 8 bits.
4
3. S-box: For each piece of 8 bits the output of a S-box is computed (’looked up in the
S table’).
4. Output Concatenation: All four pieces are concatenated together to form 32 bits.
5. Permutation: 32 bits are permuted using permutation P.
S is a substitution box transformation (Rijndael S-box):
The table of the S-box, stated in hexadecimal for compactness. Permutation P is given by
the table:
See the last page if clarification about S and P is needed.
5
1.2 Computing subkeys
The round keys of 32 bits (subkeys ki) are derived from the input key of 56 bits by means
of the key schedule (total of 10 subkeys) using the following schedule:
1. Splitting: The main key k of 56 bits is divided into two halves of 28 bits. Let’s denote
these halves as C0 and D0.
2. Transformation Function: In each round, a left shift by 1 function LS1 is applied
separately to both half’s of the data, typically the right half Ri
, using the round key
ki of 32 bits. The result of the function is then XORed with the other half Li
.
Ci+1 = LS1(Ci)
Di+1 = LS1(Di)
3. Concatenation: In each round two halves (Ci and Di) are concatenated together.
The first (left most) 32 bits forms the round subkey ki
.
4. Iteration: Steps 2 and 3 are repeated 10 times.
6
1.3 Required methods
Your implementation must include the following methods:
• Custom xorIt(binary1, binary2)
• Custom shiftIt(binaryInput)
• Custom permuteIt(binaryInput)
• Custom SubstitutionS(binaryInput)
• functionF(rightHalf, subkey)
• encryptBlock(block, inputKey),
• decryptBlock(block, inputKey),
• encryption(longBinaryInput, inputKey),
• decryption(longBinaryInput, inputKey),
• keyScheduleTransform(inputKey),
• runTests()
• You can have additional helper functions. Custom means you can NOT use
ready methods and must write your own methods.
1.4 Build-in tests
The runTests() mathod shall be invoked when user runs the program and it shall print
output for the following test cases:
• encryptBloc(all ones, all ones)
• encryptBloc(all zeros, all ones)
• encryptBloc(all zeros, zeros)
• encryptBloc(block,input key), where:
block = 1100110010000000000001110101111100010001100101111010001001001100
input key = all zeros
• decryptBlock(all ones, all ones)
• decryptBlock(all zeros, all ones)
7
• decryptBlock(all zeros, zeros)
• decryptBlock(block,input key), where:
block = 0101011010001110111001000111100001001110010001100110000011110101
input key = all ones
• decryptBlock(block,input key), where:
block = 0011000101110111011100100101001001001101011010100110011111010111
input key = all zeros
When running the program
When the user runs the program, it should print output for the test cases from section 1.4.
The program should then prompt the user to choose whether they want to encrypt or decrypt
and specify the filename to process. Additionally, the program should ask for a filename to
save the output, and an appropriate file should be created for this purpose.
Running Tests:
Output for: encryption(all ones, all ones)
0101011010001110111001000111100001001110010001100110000011110101
Output for: encryption(all zeros, all ones)
1100111010001000100011011010110110110010100101011001100000101000
Output for: encryption(all zeros, all zeros)
1010100101110001000110111000011110110001101110011001111100001010
Output for: encryption(block,all zeros), where:
block = 1100110010000000000001110101111100010001100101111010001001001100
0010101110011011010001010111000010110110101011111010000101100101
Output for: decryption(all ones, all ones)
0100111001000110011000001111010101010110100011101110010001111000
Output for: decryption(all zeros, all ones)
1011001010010101100110000010100011001110100010001000110110101101
Output for: decryption(all zeros, all zeros)
1011000110111001100111110000101010101001011100010001101110000111
Output for: decryption(block,all ones), where:
block = 0101011010001110111001000111100001001110010001100110000011110101
1111111111111111111111111111111111111111111111111111111111111111
Output for: decryption(block,all zeros), where:
block = 0011000101110111011100100101001001001101011010100110011111010111
1111111111111111111111111111111111111111111111111111111111111111
Do you want to encrypt or decrypt (E/D): E
Filename: data.txt
Secret key: 10101101011101110101010101011100010110101011100010101010
8
Output file: data1.txt
Submission Requirements
Zip (archive) all the project source files and a README file and save it as a Project1LastName.zip
file. Include your LastName (+partner) in the filename. Upload the file to the appropriate
folder on Gradescope. Your README file should include name of the members of the team
and any specific instruction which is useful for the project. It should also include all the features (including additional features) that you have implemented. Make sure all your source
files are properly commented so that user can browse your code without getting lost.
2 Grading
The rubric for this assignment is available through Gradescope. Your solution will be tested
with private test cases.
0 points if the program doesn’t compile. No points for the rest. Grading complete.
2.1 Important note about Academic Honesty
If some of the tasks are challenging or not for you, feel free to discuss with others but all
discussion have to be on high level without writing code or pseudocode. Once you sit down
and start coding, all the code you write should be your own . Using ready code from other
sources (internet, friends, chatGPT etc.) will be considered as a violation of the academic
honesty. After submitting your work, you should be able to explain your code in details, if
so requested by lab TAs or by the instructor. Your initial points may be reduced, if unable
to answer questions on your submitted work.
3 Hints
• Text file sbox.txt contains a constant - S- box look up table that you can use.
• S- box example:
– Let’s say we want to compute the substitution for the byte 53 (in binary 01010011).
– We’ll first convert 53 to its row and column indices.
– The first hex digit (5) represents the row index.
– The second hex digit (3) represents the column index.
– So, for 53, the row index is 5 and the column index is 3.
– Now, we’ll look up the value in the S-box using these indices.
9
– The value at row 5 and column 3 in the S-Box is ed (in binary 11101101).
• Permutation table example: Consider table (3x3):
Sample input: 101111000
Output after permutation: 001111010
– The permutation table rearranges the elements of the input according to the
specified positions.
– Each number in the permutation table represents the position of the corresponding
element in the input.
– For example, the element at position 1 of the input (value 1) becomes the element
at position 4 of the output.
– Similarly, the element at position 9 of the input (value 0) becomes the element at
position 1 of the output.
Sample input 2: 111000111
請加QQ:99515681  郵箱:99515681@qq.com   WX:codehelp

標簽:

掃一掃在手機打開當前頁
  • 上一篇:代寫MTRN4010、代做MATLAB程序設計
  • 下一篇:CS 213代做、Java設計編程代寫
  • 無相關信息
    昆明生活資訊

    昆明圖文信息
    蝴蝶泉(4A)-大理旅游
    蝴蝶泉(4A)-大理旅游
    油炸竹蟲
    油炸竹蟲
    酸筍煮魚(雞)
    酸筍煮魚(雞)
    竹筒飯
    竹筒飯
    香茅草烤魚
    香茅草烤魚
    檸檬烤魚
    檸檬烤魚
    昆明西山國家級風景名勝區(qū)
    昆明西山國家級風景名勝區(qū)
    昆明旅游索道攻略
    昆明旅游索道攻略
  • 短信驗證碼平臺 理財 WPS下載

    關于我們 | 打賞支持 | 廣告服務 | 聯(lián)系我們 | 網站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 kmw.cc Inc. All Rights Reserved. 昆明網 版權所有
    ICP備06013414號-3 公安備 42010502001045

    精品深夜AV无码一区二区_伊人久久无码中文字幕_午夜无码伦费影视在线观看_伊人久久无码精品中文字幕
    <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp>
    <ul id="e4iaa"></ul>
    <blockquote id="e4iaa"><tfoot id="e4iaa"></tfoot></blockquote>
    • <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp>
      <ul id="e4iaa"></ul>
      <samp id="e4iaa"><tbody id="e4iaa"></tbody></samp><ul id="e4iaa"></ul>
      <ul id="e4iaa"></ul>
      <th id="e4iaa"><menu id="e4iaa"></menu></th>
      人妻aⅴ无码一区二区三区| 97超碰人人草| 青青草av网站| 91亚洲国产成人精品一区| 免费一级全黄少妇性色生活片| 东京热av一区| 一级少妇精品久久久久久久| 天天射天天干天天| 免费毛片视频网站| 激情av中文字幕| 香蕉视频xxx| 农村末发育av片一区二区| 成人久久久精品国产乱码一区二区| 少妇按摩一区二区三区| 国产欧美一区二区三区在线看蜜臂 | 久久精品一二区| av中文在线观看| 性欧美成人播放77777| 乱精品一区字幕二区| 国产精品久久久久野外| 在线观看免费视频一区| 久久露脸国语精品国产91| 亚欧精品视频一区二区三区| 国产高清成人久久| 亚洲影院一区二区三区| 少妇精品无码一区二区| 久久久久久久久久久久久久免费看| 亚洲 国产 欧美 日韩| 久久精品一区二区三| 九九热视频在线免费观看| 国产欧美精品一二三| 成人精品在线看| 99久久人妻精品免费二区| 亚洲成人黄色片| 日本久久久久久久久久| 日韩精品一区二区三区高清免费| 精品国产九九九| 国产在线欧美在线| 亚洲不卡视频在线| 视频二区在线观看| 少妇伦子伦精品无吗| 色综合久久久久久| 少妇极品熟妇人妻无码| 五月天激情开心网| 亚洲久久在线观看| 国产免费中文字幕| 日韩av在线天堂| 91麻豆成人精品国产免费网站| www.看毛片| 人人妻人人澡人人爽| 亚洲精品视频网| 韩国av免费观看| 日本中文在线播放| 亚洲图片欧美在线| 国产亚洲欧美精品久久久久久| 日本亚洲色大成网站www久久| 亚洲欧美国产中文| 精品无码黑人又粗又大又长| 无码人中文字幕| 国产三级自拍视频| 一区二区视频网站| 精品国产乱码一区二区 | 麻豆精品一区二区三区视频| 天天操精品视频| 国产按摩一区二区三区| 久久亚洲天堂网| 99热只有这里有精品| 人妻丰满熟妇av无码区| 99在线视频免费| 亚欧在线观看视频| 国产一级视频在线| 中文字幕丰满乱子伦无码专区| 精品国产免费观看| 97成人免费视频| 少妇又紧又色又爽又刺激视频| 丰满少妇高潮一区二区| 亚洲av成人无码久久精品| 久操免费在线视频| www.蜜桃av.com| 伊人久久久久久久久| 精品国产va久久久久久久| 99热这里只有精品在线| 性刺激的欧美三级视频| 欧美国产成人精品一区二区三区| 97视频免费在线| 小泽玛利亚一区二区免费| 久久免费手机视频| 国产精品久免费的黄网站| 亚洲精品18在线观看| 无码黑人精品一区二区| 日韩av手机在线免费观看| 精品深夜av无码一区二区老年| 福利在线一区二区三区| 亚洲影视一区二区| 一级做a爱片性色毛片| 秋霞欧美一区二区三区视频免费| 国产女主播喷水视频在线观看| 成人乱码一区二区三区| 99国产精品久久久久久| 亚洲色图欧美视频| 午夜精品久久久久久久91蜜桃| 欧美日韩在线国产| 久久久999久久久| 久操免费在线视频| 国产又粗又黄又爽视频| 国产美女网站视频| 国产激情在线免费观看| 丰满人妻一区二区三区大胸| 丁香六月婷婷综合| 国产精品国产av| a在线观看免费| 91激情在线观看| 97人妻精品一区二区三区| 亚洲天堂视频在线| 999久久久精品视频| 91成人一区二区三区| 亚洲精品中文字幕乱码三区91| 中文字幕在线永久| 亚洲精品视频专区| 91成人福利视频| 成人小视频在线播放| 国产精品天天干| 久久久久免费看| 色噜噜在线观看| 一区二区三区免费观看视频 | 久久久无码人妻精品一区| 精品一区在线视频| 人妻少妇精品一区二区三区| 日韩av一区二区在线播放| 天堂av网手机版| 亚洲国产精品久久久久久久| 69成人免费视频| 国产无套在线观看| 日本中文在线播放| 亚洲精品理论片| 国产精品密蕾丝袜| 精品人妻久久久久一区二区三区 | 日韩视频中文字幕在线观看| 亚洲av综合一区二区| 91精品视频免费在线观看| 国产精品伊人久久| 日韩精品一区二区三| 亚洲中文字幕无码爆乳av| 国产视频不卡在线| 天堂av手机在线| 国产精品xxxxxx| 手机在线成人av| 不卡av中文字幕| 日本一区二区三区精品| 亚洲精品男人天堂| 久久久久久久9999| 亚洲精品一区二区三区不卡| 国产三级视频在线播放| 日韩在线 中文字幕| www.欧美com| 熟妇人妻中文av无码| 国产精品麻豆免费版现看视频 | 国产又粗又猛又黄又爽无遮挡| 日韩一级片在线免费观看| v天堂中文在线| 日韩免费高清一区二区| xxxx.国产| 人人妻人人藻人人爽欧美一区 | 亚洲少妇一区二区| 久久国产精品国语对白| 一区二区久久精品66国产精品| 国产黄色片av| 亚洲国产成人精品综合99| 精品人妻一区二区三区浪潮在线| 自拍一级黄色片| 欧美成人久久久免费播放| 亚洲一区二区三区四区精品| 美女100%无挡| 国产伦精品一区二区免费| 亚洲精品视频网| 熟妇高潮一区二区高潮| 国产影视一区二区| 99久久99久久精品免费看小说.| 日韩乱码人妻无码中文字幕久久| 国产欧美久久久| 一级黄色片毛片| 这里只有久久精品视频| 日韩精品在线一区二区三区| 国产又粗又长免费视频| 91视频久久久| 午夜av中文字幕| 欧美性猛交xxxx乱大交91| 精品熟妇无码av免费久久| 国产不卡av在线播放| 91成人一区二区三区| 中文字幕在线观看你懂的| 日韩中文字幕综合| 妺妺窝人体色www聚色窝仙踪| 国产精品嫩草影视| 91亚洲视频在线观看| 亚洲美女福利视频| 亚洲天堂久久久久| 亚洲区 欧美区| 7799精品视频天天看| 一级欧美一级日韩片|