Ciphers use many bitwise operations for cryptography. Write an ARM assembly program to use ciphers. See the steps below to implement the cipher. In this program you will implement a Symmetric Encryption.
a) Assign a variable name “Choice” with value 0 or 1 to show the choice for encryption or decryption. 0 for encrypt and 1 for decrypt. .
b) If we assign 0 to the variable choice the program will do encryption and if its 1 the program will do decryption.
c) For encryption design a key value, for that assign your last nonzero number of your number in a variable called “Key” Example: if your number is 5012345 Assign 5 to the variable Key and use it as the Key for encryption.
d) For choice 0 store the Cipher in a variable called “C”, for choice 1 store the Plain text in a variable called “P” (use symmetric Key cryptography and implement that for encryption and decryption).
e) Test the encrypt program using the first letter of your name in capital case and to test decryption use the encrypted binary equivalent of the last letter in capital case of your name. ASCII chart is given for reference. Assign testing values in variables “testEn” and “testDe” to test both choices..
f) Neat program with comments.
Read only Variables required: Choice, Key, testEn, testDe
Read Write Variables required: C P
Extracted text: Symmetric Encryption Plain 0101 100|0 Plaintext Ciphertext Key 0 1 1 1 0 1 1 1 H4SH&KX ?>W6s]L3A Euryption Deureton XOR Encryption H9v8Bw45
Extracted text: Dec Hx Oct Char 0 000 NUL (null) 1 1 001 SOH (start of heading) 2 2 002 STX (start of text) 3 3 003 ETX (end of text) 4 4 004 EOT (end of transmission) 5 5 005 ENQ (enquiry) 6 6 006 ACK (acknowledge) 7 007 BEL (bell) 8 8 010 BS (backspace) 9 9 011 TAB (horizontal tab) 10 A 012 LF (NL line feed, new line)l 42 2A 052 G#42; * 11 B 013 VT (vertical tab) 12 C 014 FF (NP form feed, new page)l 44 20 054 G#44; 13 D 015 CR (carriage return) 14 E 016 SO (shift out) 15 F 017 SI (shift in) 16 10 020 DLE (data link escape) 17 11 021 DC1 (device control 1) 18 12 022 DC2 (device control 2) 19 13 023 DC3 (device control 3) 20 14 024 DC4 (device control 4) 21 15 025 NAK (negative acknowledge) 22 16 026 SYN (synchronous idle) 23 17 027 ETB (end of trans. block) 24 18 030 CAN (cancel) 25 19 031 EM (end of nedium) 26 1A 032 SUB (substitute) 27 1B 033 ESC (escape) 28 1C 034 FS (file separator) 29 1D 035 GS (group separator) 30 1E 036 RS (record separator) 31 1F 037 US Dec Hx Oct Html Chr Dec Hx Oct Html Chr Dec Hx Oct Html Chr 32 20 040 G#32; Space 64 40 100 @ e 33 21 041 G#33; ! 34 22 042 G#34; 35 23 043 G#35; # 36 24 044 G# 36; 6 37 25 045 G#37; 38 26 046 G#38; & 96 60 140 G#96; 97 61 141 G#97; 98 62 142 b b 99 63 143 G#99; 68 44 104 G#68; D 100 64 144 G#100; d 69 45 105 G#69; E 101 65 145 G#101; e 70 46 106 G#70; F 102 66 146 G#102; f 71 47 107 G G 103 67 147 G#103; g 72 48 110 G#72; H 104 68 150 G#104; h 73 49 111 G#73; I 105 69 151 G#105; i 74 4A 112 G#74; J 106 6A 152 G#106; ) 75 4B 113 G#75; K 107 6B 153 G#107; k 76 4C 114 G#76; L 108 6C 154 G#108; 1 77 4D 115 G#77; 109 6D 155 G#109; a 78 4E 116 G#78; N 110 6E 156 G#110; n 79 4F 117 G#79; 0 111 6F 157 G#111; 0 80 50 120 G#80; P 112 70 160 G#112; p 81 51 121 G#81; Q 113 71 161 G#113; q 82 52 122 G#82; R 114 72 162 G#114; r 83 53 123 G#83; $ 115 73 163 G#115; s 84 54 124 G#84; T 116 74 164 G#116; t 85 55 125 U U 117 75 165 6#117; u 86 56 126 G#86; V 118 76 166 G#118; v 87 57 127 G#87; U 119 77 167 G#119; v 88 58 130 G#88; X 120 78 170 G#120; x 89 59 131 Y Y 121 79 171 6#121; Y 90 SA 132 G#90; z 122 7A 172 G#122; z 91 5B 133 G#91; [123 7B 173 G#123; { 92 5C 134 G#92; \ 124 7C 174 G#124; I 93 5D 135 G#93; ] 125 7D 175 G#125; } 126 7E 176 G#126; - 127 7F 177 G#127; DEL 65 41 101 G#65; A 66 42 102 B B 67 43 103 C C a 39 27 047 G#39; ' 40 28 050 G# 40; 41 29 051 G# 41; ) 43 2B 053 G#43; + 45 2D 055 G#45; 46 2E 056 G#46; 47 2F 057 G#47; / 48 30 060 G#48; 0 49 31 061 G#49; 1 50 32 062 G#50; 2 51 33 063 G#51; 3 52 34 064 G#52; 4 53 35 065 G#53; 5 54 36 066 G#54; 6 55 37 067 G#55; 7 56 38 070 G#56; 8 57 39 071 G#57; 9 58 3A 072 G#58; : 59 3B 073 G#59; ; 60 3C 074 G#60; < 61="" 3d="" 075="" g#61;="62" 3e="" 076="" g#62;=""> 94 SE 136 ^ A 95 5F 137 G#95; (unit separator) 63 3F 077 G#63; ?