Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

OENG1206 Practical 2 School of Engineering XXXXXXXXXXOENG1206 – Digital Fundamentals (Practical 2) 1 XXXXXXXXXXOENG1206 – Digital Fundamentals Practical Exercise 2 Ciphers School of Engineering...

1 answer below »
OENG1206 Practical 2

School of Engineering
XXXXXXXXXXOENG1206 – Digital Fundamentals (Practical 2)
1
XXXXXXXXXXOENG1206 – Digital Fundamentals
Practical Exercise 2
Ciphers
School of Engineering
XXXXXXXXXXOENG1206 – Digital Fundamentals (Practical 2)
2
Practical Exercise 2: A Cipher Algorithm
Learning Outcomes
Upon successful completion of this practical task you will be
able to:
• Explain how characters and other symbols are stored on
computers using the ASCII system of encoding.
• Demonstrate how to use casting functions in MATLAB to
modify data-types.
• Design and implement an algorithm utilising
conditional/iterative programming structures and user-
defined functions.
Introduction to the practical
‘Secret codes’ or ciphers have been around for hundreds if not
thousands of years and have been used throughout history to
secure communication between groups of people.
Often ciphers have been used in times of war to ensure sensitive
information is communicated only to certain people; even if the
enemy intercepts the communication all they should be able to
ead is gi
erish unless they know the appropriate key to use to
decrypt the message.
One well-known example of a cipher was the Enigma code used
y the German military during World War II, since then ciphers
have extended into the realms of computer science and
computer network security with very complex algorithms now
eing used to encrypt communication between computers.
Modern encryption schemes include algorithms such as the
Advanced Encryption Standard (AES), the Rivest-Shamir-
Adleman (RSA) system and the Transport Layer Security (TLS)
system.
School of Engineering
XXXXXXXXXXOENG1206 – Digital Fundamentals (Practical 2)
3
Part 2 (week 6): Create a Program to Encrypt Messages

In this part of the practical we’ll be taking the concepts from last week on
converting characters to and from ASCII and binary to create a very simple
encryption algorithm based on the Exclusive OR (XOR) operator.
Principle
The principle behind this type of encryption is based on a property of the
XOR operator where:
(?⨁?)⨁? = ?
Where the  symbol represents the Exclusive OR operator.
If we look at this in a bitwise sense this can be described as follows:
- We have two binary numbers (one could be the plaintext character
we’re encrypting and the other could be the encryption key).
- Performing a bitwise XOR on these two numbers produces some
output, the ciphertext, e.g.:
XXXXXXXXXXplaintext character)

XXXXXXXXXXencryption key)
=
XXXXXXXXXX XXXXXXXXXXciphertext)
- Taking the result of this and performing a second XOR operation using
the same encryption key will result in our original plaintext input, e.g.:
XXXXXXXXXX XXXXXXXXXXciphertext)

XXXXXXXXXX (encryption key)
=
XXXXXXXXXXplaintext character)
Use this principle together with the preliminary task results from last week to:
- Design and implement a user-defined function that generates an
encryption key and uses this to encrypt the characters in a character
a
ay. Write a second function to invert this operation (i.e. A decoder).
School of Engineering
XXXXXXXXXXOENG1206 – Digital Fundamentals (Practical 2)
4
Task 1 – State the Problem and Determine the Input/Output
Exercise:
Using the information given on the previous page state the problem concisely
and determine the input you have/need to solve the problem and what you
need to output to accomplish the objective.
Points to be addressed:
- The problem statement should be clear and concise, double-check
with your tutor if you are not sure of anything written in the problem
statement.
- What input/output data types do you need (numeric, words, images,
graphical output?).
- What assumptions are you making (if any) to help you solve/simplify
the problem.
Task 2 – Design your Algorithms
Exercise:
Using the information from task 1 and your preliminary task, design how you
should structure your program and the steps needed to perform the task.
Note a few important requirements for your program:
- You need to have at least one user-defined function to
encrypt/decrypt the message.
- You need at least one other script that obtains the message to be
encoded and calls the functions that perform the
encrypting/decrypting.
Points to be addressed:
- Make sure you check your algorithm will work using a short test
message.
- Make sure you show the manual working for this part and ensure this
working is neatly typed (not handwritten) in your write-up.
School of Engineering
XXXXXXXXXXOENG1206 – Digital Fundamentals (Practical 2)
5
Task 3 – Write your program
Exercise:
Now, in a new MATLAB script file write the program that will encrypt and
decrypt your message.
Points to be addressed:
- Compare the answers you get from MATLAB to your handworked
answers from task 2. They should be the same, if not troubleshoot
your algorithm/script to find where the mistake is.
- Also, help your colleagues test their solutions by writing an
encrypted message into a text file. Give that text file to your colleagues
along with the encryption key you used and see if their program can
decode your message.
- Below is some code that will write the data to a text file and read it
ack into MATLAB:

% Write encoded message to a text file
fid = fopen('mycode.txt', 'w'); % Open the file for write
access 'w'
fwrite(fid, codedmessage); % Write message to open file
fclose(fid); % important, we must release the file back to
the Operating System after we're done
% Read encoded message from a text file
fid = fopen('mycode.txt', 'r'); % Open the file for read
access 'r'
codedmessage = fread(fid); % Read the data out of the file
fclose(fid); % important, we must release the file back to
the Operating System after we're done
School of Engineering
XXXXXXXXXXOENG1206 – Digital Fundamentals (Practical 2)
6
Part 3 (week 7): A Brute-Force Decryption Algorithm
Breaking a code is always a security concern with any cipher. Our cipher
is not particularly sophisticated so would take very little to
eak; there
are only 256 possible combinations of encryption keys in our scheme
which can be easily
oken using a ‘
ute-force’ attack.
A
ute-force attack on this type of cipher could utilise an exhaustive
key search method which will basically try every possible encryption
key combination against your encrypted message.
For this part of the practical create a function that can
ute-force
decode an encrypted message without knowing the encryption key that
was used by using an exhaustive key search method.
Task 4 – State the Problem and Determine the Input/Output
Exercise:
Using the information given state the new problem concisely and determine
the input you have/need to solve the problem and what you need to output to
accomplish the objective.
Points to be addressed:
- The problem statement should be clear and concise, double-check
with your tutor if you are not sure of anything written in the problem
statement.
- What input/output data types do you need (numeric, words, images,
graphical output?).
- What assumptions are you making (if any) to help you solve/simplify
the problem.
School of Engineering
XXXXXXXXXXOENG1206 – Digital Fundamentals (Practical 2)
7
Task 5 – Design your New Algorithm
Exercise:
Design how you should structure this part of the program and the steps your
program will need to perform to achieve the objective.
Points to be addressed:
- Make sure you check your algorithm will work, step through the logic
and make sure it can achieve the objective.
Task 6 – Use MATLAB to Solve the Problem
Exercise:
Now, in MATLAB write the code to perform your
ute-force attack.
Points to be addressed:
- Compare the answers from MATLAB to what you expect, make sure
your original message is shown somewhere in your output. If the
original message is nowhere to be seen troubleshoot your
algorithm/script to find where the mistake is.
- Again, you can help your colleagues test their solutions by writing
an encrypted message into a text file (using the same method as in
Task 3). Give that text file to your colleagues without the encryption
key this time and see if their program can decode your message.
School of Engineering
XXXXXXXXXXOENG1206 – Digital Fundamentals (Practical 2)
8
Table I: Some useful MATLAB functions
Function Description
Casting Functions
cast(x, ‘newclass’)
Changes the data type of x into the data type
‘newclass’.
‘newclass’ can be one of the following:
- ‘single’ – single-precision float
- ‘double’ – double-precision float
- ‘int8’- signed 8-bit integer
- ‘int16’ – same, but 16-bit integer
- ‘int32’ - same, but 32-bit integer
- ‘int64’ - same, but 64-bit integer
- ‘uint8/16/32/63’ – Same as above
ut unsigned integers
- ‘logical’ – logical (Boolean)
- ‘char’ - characte
Syntax examples:
To change a double-precision floating point
number to an 8-bit unsigned integer:
x = 17; % Defaults to double
y = cast(x, ‘uint8’); % casts x
to an unsigned, 8-bit integer
You can also do this simply by using
Answered Same Day May 04, 2021

Solution

Abr Writing answered on May 07 2021
151 Votes
encrypt_xor.m
function [key, encrypt] = encrypt_xor(message)

message = convertStringsToChars(message);
bin = dec2bin(message);
bin = cast(bin, 'int64');
bin = bin - min(min(bin));

key = randi([0 1],1,size(bin, 2));

encrypt = "";
for i = 1:size(bin,1)
encrypt = strcat(encrypt, ...
string(char(bin2dec(num2str(xor(bin(i,1:end), key))))));
end

encrypt = convertCharsToStrings(encrypt);
end
encrypted.txt
108
92
75
79
69
71
64
73
14
79
14
77
65
74
75
14
71
93
14
79
66
89
79
87
93
14
79
14
93
75
77
91
92
71
90
87
14
77
65
64
77
75
92
64
14
89
71
90
70
14
79
64
87
14
77
71
94
70
75
92
0
14
97
91
92
14
77
71
94
70
75
92
14
71
93
14
64
65
90
14
94
79
92
90
71
77
91
66
79
92
66
87
14
93
65
94
70
71
93
90
71
77
79
90
75
74
14
93
65
14
89
65
91
66
74
14
90
79
69
75
14
88
75
92
87
14
66
71
90
90
66
75
14
90
65
14
76
92
75
79
69
21
14
90
70
75
92
75
14
79
92
75
14
65
64
66
87
14
28
27
24
14
94
65
93
93
71
76
66
75
14
77
65
67
76
71
64
79
90
71
65
64
93
14
65
72
14
75
64
77
92
87
94
90
71
65
64
14
69
75
87
93
14
71
64
14
65
91
92
14
93
77
70
75
67
75
14
89
70
71
77
70
14
77
79
64
14
76
75
14
75
79
93
71
66
87
14
76
92
65
69
75
64
14
91
93
71
64
73
14
79
14
76
92
91
90
75
3
72
65
92
77
75
14
79
90
90
79
77
69
0
14
111
14
76
92
91
90
75
3
72
65
92
77
75
14
79
90
90
79
77
69
14
65
64
14
90
70
71
93
14
90
87
94
75
14
65
72
14
77
71
94
70
75
92
14
77
65
91
66
74
14
91
90
71
66
71
93
75
14
79
64
14
75
86
70
79
91
93
90
71
88
75
14
69
75
87
14
93
75
79
92
77
70
14
67
75
90
70
65
74
14
89
70
71
77
70
14
89
71
66
66
14
76
79
93
71
77
79
66
66
87
14
90
92
87
14
75
88
75
92
87
14
94
65
93
93
71
76
66
75
14
75
64
77
92
87
94
90
71
65
64
14
69
75
87
14
77
65
67
76
71
64
79
90
71
65
64
14
79
73
79
71
64
93
90
14
87
65
91
92
14
75
64
77
92
87
94
90
75
74
14
67
75
93
93
79
73
75
0
14
104
65
92
14
90
70
71
93
14
94
79
92
90
14
65
72
14
90
70
75
14
94
92
79
77
90
71
77
79
66
14
77
92
75
79
90
75
14
79
14
72
91
64
77
90
71
65
64
14
90
70
79
90
14
77
79
64
14
76
92
91
90
75
3
72
65
92
77
75
14
74
75
77
65
74
75
14
79
64
14
75
64
77
92
87
94
90
75
74
14
67
75
93
93
79
73
75
14
89
71
90
70
65
91
90
14
69
64
65
89
71
64
73
14
90
70
75
14
75
64
77
92
87
94
90
71
65
64
14
69
75
87
14
90
70
79
90
14
89
79
93
14
91
93
75
74
14
76
87
14
91
93
71
64
73
14
79
64
14
75
86
70
79
91
93
90
71
88
75
14
69
75
87
14
93
75
79
92
77
70
14
67
75
90
70
65
74
0
cipher.mlx
[Content_Types].xml

_rels/.rels

matla
document.xml
OENG1206 – Digital Fundamentals – Ciphers Part 2 (week 6): Create a Program to Encrypt Messages Task 1 – State the Problem and Determine the Input/Output In this part of the we’ll be converting characters to and from ASCII and binary to create a very simple encryption algorithm based on the Exclusive OR (XOR) operator. Designing and implementing a user-defined function that generates an encryption key and uses this to encrypt the characters in a character a
ay. Input: message: message to encrypt, type cha
string Output: key: key used for encryption, type binary numeric a
ay encrypt: encrypted message, type string A second function to invert the above operation that is encrypt if the key is provided. Input: key: key used for encryption, type binary numeric a
ay encrypt: encrypted message, type cha
string Output: decrypt: decrypted message, type string Task 2 – Design your Algorithms Convert each letter into ASCII Code Apply XOR operation on each code Convert ASCII code into letter Task 3 – Write your program Encryption [key, encrypt] = encrypt_xor('I am a message') Decryption decrypt = decrypt_xor(key, encrypt) Reading the normal text from message.txt file. fid = fopen('message.txt', 'r');
message = fscanf(fid, '%c');
fclose(fid); Encrpyting the message bin = dec2bin(message);
in = cast(bin, 'int64');
in = bin - min(min(bin));
key = randi([0 1],1,size(bin, 2));
disp(key);
encrypt = zeros(size(bin,1),1);
for i = 1:size(bin,1)
encrypt(i) = bin2dec(num2str(xor(bin(i,1:end), key)));
end Saving the encrypting message to encrypted.txt file. dlmwrite('encrypted.txt',encrypt,'delimiter',''); Part 3 (week 7): A Brute-Force Decryption Algorithm Task 4 – State the Problem and Determine the Input/Output A
ute-force attack on this type of cipher could utilise an exhaustive key search method which will basically try every possible encryption key combination against your encrypted message. In this part we willl create a function that can
ute-force decode an encrypted message without knowing the encryption key that was used by using an exhaustive key search method. Input: encrypt: encrypted message, type numerical a
ay of integers Output: key: key used for encryption, type binary numeric a
ay decrypt: decrypted message, type string Task 5 – Design your New Algorithm Convert the letters into binary form Create all the possible keys for the above binary enrypted message Check visually for the key Task 6 – Use MATLAB to Solve the Problem Reading the encrypted message from encrypted.txt . fid = fopen('encrypted.txt', 'r');
codedmessage = fscanf(fid, '%d');
fclose(fid); Decrypting the above text using
ute-force method. decrypt_
ute_force(codedmessage) From the results above, we can see that the key for the encrypted code is 0101110 .
matla
output.xml
manual document ready 0.4 matrix key 1×7 1 7 double 1 0 1 1 1 0 0
double double [[{"value":"{\"value\":\"1\"}"},{"value":"{\"value\":\"0\"}"},{"value":"{\"value\":\"1\"}"},{"value":"{\"value\":\"1\"}"},{"value":"{\"value\":\"1\"}"},{"value":"{\"value\":\"0\"}"},{"value":"{\"value\":\"0\"}"}]] 1 variableString encrypt "|=1|=|19
=;9" false false 1 1 1 variableString decrypt "I am a message" false false 1 1 2 text 0 1 0 1 1 1 0
false false 11 text key = 0000000, decrypt = l\KOEG@IOMAJKG]OBYOW]O]KM[\GZWMA@MK\@YGZFO@WMG^FK\ a[\MG^FK\G]@AZ^O\ZGM[BO\BW]A^FG]ZGMOZKJ]AYA[BJZOEKXK\WBGZZBKZAL\KOEZFK\KO\KA@BW^A]]GLBKMACLG@OZGA@]AHK@M\W^ZGA@EKW]G@A[\]MFKCKYFGMFMO@LKKO]GBWL\AEK@[]G@IOL\[ZKHA\MKOZZOME oL\[ZKHA\MKOZZOMEA@ZFG]ZW^KAHMG^FK\MA[BJ[ZGBG]KO@KVFO[]ZGXKEKW]KO\MFCKZFAJYFGMFYGBBLO]GMOBBWZ\WKXK\W^A]]GLBKK@M\W^ZGA@EKWMACLG@OZGA@OIOG@]ZWA[\K@M\W^ZKJCK]]OIK hA\ZFG]^O\ZAHZFK^\OMZGMOBM\KOZKOH[@MZGA@ZFOZMO@L\[ZKHA\MKJKMAJKO@K@M\W^ZKJCK]]OIKYGZFA[ZE@AYG@IZFKK@M\W^ZGA@EKWZFOZYO][]KJLW[]G@IO@KVFO[]ZGXKEKW]KO\MFCKZFAJ
key = 0000001, decrypt = m]JNDFAHNL@KJF\NCXNV\N\JLZ]F[VL@ALJ]AXF[GNAVLF_GJ]`Z]LF_GJ]F\A@[_N][FLZCN]CV\@_GF\[FLN[JK\@X@ZCK[NDJYJ]VCF[[CJ[@M]JND[GJ]JN]J@ACV_@\\FMCJL@BMFAN[F@A\@IJAL]V_[F@ADJV\FA@Z]\LGJBJXGFLGLNAMJJN\FCVM]@DJAZ\FAHNM]Z[JI@]LJN[[NLDnM]Z[JI@]LJN[[NLD@A[GF\[V_J@ILF_GJ]L@ZCKZ[FCF\JNAJWGNZ\[FYJDJV\JN]LGBJ[G@KXGFLGXFCCMN\FLNCCV[]VJYJ]V_@\\FMCJJAL]V_[F@ADJVL@BMFAN[F@ANHNFA\[V@Z]JAL]V_[JKBJ\\NHJi@][GF\_N][@I[GJ_]NL[FLNCL]JN[JNIZAL[F@A[GN[LNAM]Z[JI@]LJKJL@KJNAJAL]V_[JKBJ\\NHJXF[G@Z[DA@XFAH[GJJAL]V_[F@ADJV[GN[XN\Z\JKMVZ\FAHNAJWGNZ\[FYJDJV\JN]LGBJ[G@K
key = 0000010, decrypt = n^IMGEBKMOCHIE_M@[MU_M_IOY^EXUOCBOI^B[EXDMBUOE\DI^cY^OE\DI^E_BCX\M^XEOY@M^@U_C\DE_XEOMXIH_C[CY@HXMGIZI^U@EXX@IXCN^IMGXDI^IM^ICB@U\C__EN@IOCANEBMXECB_CJIBO^U\XECBGIU_EBCY^_ODIAI[DEODOMBNIIM_E@UN^CGIBY_EBKMN^YXIJC^OIMXXMOGmN^YXIJC^OIMXXMOGCBXDE_XU\ICJOE\DI^OCY@HYXE@E_IMBITDMY_XEZIGIU_IM^ODAIXDCH[DEOD[E@@NM_EOM@@UX^UIZI^U\C__EN@IIBO^U\XECBGIUOCANEBMXECBMKMEB_XUCY^IBO^U\XIHAI__MKIjC^XDE_\M^XCJXDI\^MOXEOM@O^IMXIMJYBOXECBXDMXOMBN^YXIJC^OIHIOCHIMBIBO^U\XIHAI__MKI[EXDCYXGBC[EBKXDIIBO^U\XECBGIUXDMX[M_Y_IHNUY_EBKMBITDMY_XEZIGIU_IM^ODAIXDCH
key = 0000011, decrypt = o_HLFDCJ
L
NBIH
D^
LAZLT^
L
^HNX_DYT
NBCNH_C
ZDYE
LCT
ND]EH_
X_
ND]EH_
D^
CBY
]L_YDNXAL_AT
^B]ED^YDNLYHI
^B
ZBXAI
YLFH
[H_T
ADYYAH
YB
O_HLF
YEH_H
L_H
BCAT
]B^^DOAH
NB@ODCLYDBC^
BK
HCN_T]YDBC
FHT^
DC
BX_
^NEH@H
ZEDNE
NLC
OH
HL^DAT
O_BFHC
X^DCJ
L
O_XYH KB_NH
LYYLNF
l
O_XYH KB_NH
LYYLNF
BC
YED^
YT]H
BK
ND]EH_
NBXAI
XYDAD^H
LC
HUELX^YD[H
FHT
^HL_NE
@HYEBI
ZEDNE
ZDAA
OL^DNLAAT
Y_T
H[H_T
]B^^DOAH
HCN_T]YDBC
FHT
NB@ODCLYDBC
LJLDC^Y
TBX_
HCN_T]YHI
@H^^LJH
kB_
YED^
]L_Y
BK
YEH
]_LNYDNLA
N_HLYH
L
KXCNYDBC
YELY
NLC
O_XYH KB_NH
IHNBIH
LC
HCN_T]YHI
@H^^LJH
ZDYEBXY
FCBZDCJ
YEH
HCN_T]YDBC
FHT
YELY
ZL^
X^HI
OT
X^DCJ
LC
HUELX^YD[H
FHT
^HL_NE
@HYEBI
key = 0000100, decrypt = hXOKACDM
K
IENO
CY
KF]KSY
K
YOI_XC^S
IEDIOXD
]C^B
KDS
ICZBOX
e_X
ICZBOX
CY
DE^
ZKX^CI_FKXFS
YEZBCY^CIK^ON
YE
]E_FN
^KAO
\OXS
FC^^FO
^E
HXOKA
^BOXO
KXO
EDFS
ZEYYCHFO
IEGHCDK^CEDY
EL
ODIXSZ^CED
AOSY
CD
E_X
YIBOGO
]BCIB
IKD
HO
OKYCFS
HXEAOD
_YCDM
K
HX_^OLEXIO
K^^KIA
k
HX_^OLEXIO
K^^KIA
ED
^BCY
^SZO
EL
ICZBOX
IE_FN
_^CFCYO
KD
ORBK_Y^C\O
AOS
YOKXIB
GO^BEN
]BCIB
]CFF
HKYCIKFFS
^XS
O\OXS
ZEYYCHFO
ODIXSZ^CED
AOS
IEGHCDK^CED
KMKCDY^
SE_X
ODIXSZ^ON
GOYYKMO
lEX
^BCY
ZKX^
EL
^BO
ZXKI^CIKF
IXOK^O
K
L_DI^CED
^BK^
IKD
HX_^OLEXIO
NOIENO
KD
ODIXSZ^ON
GOYYKMO
]C^BE_^
ADE]CDM
^BO
ODIXSZ^CED
AOS
^BK^
]KY
_YON
HS
_YCDM
KD
ORBK_Y^C\O
AOS
YOKXIB
GO^BEN
key = 0000101, decrypt = iYNJ@BELJHDONBXJG\JRXJXNH^YB_RHDEHNYE\B_CJERHB[CNYd^YHB[CNYBXED_[JY_BH^GJYGRXD[CBX_BHJ_NOXD\D^GO_J@N]NYRGB__GN_DIYNJ@_CNYNJYNDEGR[DXXBIGNHDFIBEJ_BDEXDMNEHYR[_BDE@NRXBED^YXHCNFN\CBHCHJEINNJXBGRIYD@NE^XBELJIY^_NMDYHNJ__JH@jIY^_NMDYHNJ__JH@DE_CBX_R[NDMHB[CNYHD^GO^_BGBXNJENSCJ^X_B]N@NRXNJYHCFN_CDO\CBHC\BGGIJXBHJGGR_YRN]NYR[DXXBIGNNEHYR[_BDE@NRHDFIBEJ_BDEJLJBEX_RD^YNEHYR[_NOFNXXJLNmDY_CBX[JY_DM_CN[YJH_BHJGHYNJ_NJM^EH_BDE_CJ_HJEIY^_NMDYHNONHDONJENEHYR[_NOFNXXJLN\B_CD^_@ED\BEL_CNNEHYR[_BDE@NR_CJ_\JX^XNOIR^XBELJENSCJ^X_B]N@NRXNJYHCFN_CDO
key = 0000110, decrypt = jZMICAFKGLAID_IQ[MK]ZA\KGFKMZ_A\IFKAX@Mg]KAX@MAFGXIZ\AK]DIZD[GX@A[\AKI\M[_G]D\IC^MZDA\\D\JZMI\@MZIZGFXG[[AJDKGEJAFI\AGFGMFKZQX\AGCMQAG][K@ME_@AKKIJMI[ADJZGCM][AFJZ]\MNGZKI\\IKJZ]\MNGZKI\\IKG\@A\QXGKAX@MKG]D]\ADA[IMP@I][\A^CM[MIZKEM\@G_@AK_ADJI[AKIDD\ZM^MZXG[[AJDMFKZQX\AGCMKGEJAFI\AGIOIAF[QG]MFKZQX\MEM[[IOnG\@AXIZG\@XZIK\AKIKZMI\N]FK\AG\@IKIJZ]\MNGZKLMKGLIMFKZQX\MEM[[IO_A\@G]CFG_AF\@MFKZQX\AGCM\@I_I][MJ][AFIMP@I][\A^CM[MIZKEM\@GL
key = 0000111, decrypt = k[LHB@GN    H    JFML    @Z    HE^HPZ    H    ZLJ\[@]P    JFGJL[G    ^@]A    HGP    J@YAL[    f\[    J@YAL[    @Z    GF]    YH[]@J\EH[EP    ZFYA@Z]@JH]LM    ZF    ^F\EM    ]HBL    _L[P    E@]]EL    ]F    K[LHB    ]AL[L    H[L    FGEP        YFZZ@KEL    JFDK@GH]@FGZ    FO    LGJ[PY]@FG    BLPZ    @G    F\[    ZJALDL    ^A@JA    JHG    KL    LHZ@EP    K[FBLG    \Z@GN    H    K[\]LOF[JL    H]]HJB    h    K[\]LOF[JL    H]]HJB    FG    ]A@Z    ]PYL    FO    J@YAL[    JF\EM    \]@E@ZL    HG    LQAH\Z]@_L    BLP    ZLH[JA    DL]AFM    ^A@JA    ^@EE    KHZ@JHEEP    ][P    L_L[P    YFZZ@KEL    LGJ[PY]@FG    BLP    JFDK@GH]@FG    HNH@GZ]    PF\[    LGJ[PY]LM    DLZZHNL    oF[    ]A@Z    YH[]    FO    ]AL    Y[HJ]@JHE    J[LH]L    H    O\GJ]@FG    ]AH]    JHG    K[\]LOF[JL    MLJFML    HG    LGJ[PY]LM    DLZZHNL    ^@]AF\]    BGF^@GN    ]AL    LGJ[PY]@FG    BLP    ]AH]    ^HZ    \ZLM    KP    \Z@GN    HG    LQAH\Z]@_L    BLP    ZLH[JA    DL]AFM
key = 0001000, decrypt = dTCGMOHAGEIBCOUGJQG_UGUCESTOR_EIHECTHQORNGH_EOVNCiSTEOVNCTOUHIRVGTROESJGTJ_UIVNOUROEGRCBUIQISJBRGMCPCT_JORRJCRIDTCGMRNCTCGTCIHJ_VIUUODJCEIKDOHGROIHUI@CHET_VROIHMC_UOHISTUENCKCQNOENEGHDCCGUOJ_DTIMCHSUOHAGDTSRC@ITECGRRGEgDTSRC@ITECGRRGEMIHRNOUR_VCI@EOVNCTEISJBSROJOUCGHC^NGSUROPCMC_UCGTENKCRNIBQNOENQOJJDGUOEGJJ_RT_CPCT_VIUUODJCCHET_VROIHMC_EIKDOHGROIHGAGOHUR_ISTCHET_VRCBKCUUGA`ITRNOUVGTRI@RNCVTGEROEGJETCGRCG@SHEROIHRNGREGHDTSRC@ITECBCEIBCGHCHET_VRCBKCUUGACQORNISRMHIQOHARNCCHET_VROIHMC_RNGRQGUSUCBD_SUOHAGHC^NGSUROPCMC_UCGTENKCRNI
key = 0001001, decrypt = eUBFLNI@FDHCBNTFKPF^TFTBDRUNS^DHIDBUIPNSOFI^DNWOBU    hRUDNWOBUNTIHSWFUSNDRKFUK^THWONTSNDFSBCTHPHRKCSFLBQBU^KNSSKBSHEUBFLSOBUBFUBHIK^WHTTNEKBDHJENIFSNHITHABIDU^WSNHILB^TNIHRUTDOBJBPONDODFIEBBFTNK^EUHLBIRTNI@FEURSB
AHUDBFSSFDL    fEURSB
AHUDBFSSFDLHISONTS^WBHADNWOBUDHRKCRSNKNTBFIB_OFRTSNQBLB^TBFUDOJBSOHCPONDOPNKKEFTNDFKK^SU^BQBU^WHTTNEKBBIDU^WSNHILB^DHJENIFSNHIF@FNITS^HRUBIDU^WSBCJBTTF@B    aHUSONTWFUSHASOBWUFDSNDFKDUBFSBFARIDSNHISOFSDFIEURSB
AHUDBCBDHCBFIBIDU^WSBCJBTTF@BPNSOHRSLIHPNI@SOBBIDU^WSNHILB^SOFSPFTRTBCE^RTNI@FIB_OFRTSNQBLB^TBFUDOJBSOHC    
key = 0001010, decrypt = fVAEOMJCEGK@AMWEHSE]WEWAGQVMP]GKJGAVJSMPLEJ]GMTLAV
kQVGMTLAVMWJKPTEVPMGQHEVH]WKTLMWPMGEPA@WKSKQH@PEOARAV]HMPPHAPKFVAEOPLAVAEVAKJH]TKWWMFHAGKIFMJEPMKJWKBAJGV]TPMKJOA]WMJKQVWGLAIASLMGLGEJFAAEWMH]FVKOAJQWMJCEFVQPA    BKVGAEPPEGO
eFVQPA    BKVGAEPPEGOKJPLMWP]TAKBGMTLAVGKQH@QPMHMWAEJA\LEQWPMRAOA]WAEVGLIAPLK@SLMGLSMHHFEWMGEHH]PV]ARAV]TKWWMFHAAJGV]TPMKJOA]GKIFMJEPMKJECEMJWP]KQVAJGV]TPA@IAWWECA
KVPLMWTEVPKBPLATVEGPMGEHGVAEPAEBQJGPMKJPLEPGEJFVQPA    BKVGA@AGK@AEJAJGV]TPA@IAWWECASMPLKQPOJKSMJCPLAAJGV]TPMKJOA]PLEPSEWQWA@F]QWMJCEJA\LEQWPMRAOA]WAEVGLIAPLK@
key = 0001011, decrypt = gW@DNLKBDFJA@LVDIRD\VDV@FPWLQ\FJKF@WKRLQMDK\FLUM@WjPWFLUM@WLVKJQUDWQLFPIDWI\VJUMLVQLFDQ@AVJRJPIAQDN@S@W\ILQQI@QJGW@DNQM@W@DW@JKI\UJVVLGI@FJHGLKDQLJKVJC@KFW\UQLJKN@\VLKJPWVFM@H@RMLFMFDKG@@DVLI\GWJN@KPVLKBDGWPQCJWF@DQQDFNdGWPQCJWF@DQQDFNJKQMLVQ\U@JCFLUM@WFJPIAPQLILV@DK@]MDPVQLS@N@\V@DWFMH@QMJARMLFMRLIIGDVLFDII\QW\@S@W\UJVVLGI@@KFW\UQLJKN@\FJHGLKDQLJKDBDLKVQ\JPW@KFW\UQ@AH@VVDB@cJWQMLVUDWQJCQM@UWDFQLFDIFW@DQ@DCPKFQLJKQMDQFDKGWPQCJWF@A@FJA@DK@KFW\UQ@AH@VVDB@RLQMJPQNKJRLKBQM@@KFW\UQLJKN@\QMDQRDVPV@AG\PVLKBDK@]MDPVQLS@N@\V@DWFMH@QMJA
key = 0001100, decrypt = `PGCIKLECAMFGKQCNUC[QCQGAWPKV[AMLAGPLUKVJCL[AKRJGPmWPAKRJGPKQLMVRCPVKAWNCPN[QMRJKQVKACVGFQMUMWNFVCIGTGP[NKVVNGVM@PGCIVJGPGCPGMLN[RMQQK@NGAMO@KLCVKMLQMDGLAP[RVKMLIG[QKLMWPQAJGOGUJKAJACL@GGCQKN[@PMIGLWQKLEC@PWVGDMPAGCVVCAIc@PWVGDMPAGCVVCAIMLVJKQV[RGMDAKRJGPAMWNFWVKNKQGCLGZJCWQVKTGIG[QGCPAJOGVJMFUJKAJUKNN@CQKACNN[VP[GTGP[RMQQK@NGGLAP[RVKMLIG[AMO@KLCVKMLCECKLQV[MWPGLAP[RVGFOGQQCEGdMPVJKQRCPVMDVJGRPCAVKACNAPGCVGCDWLAVKMLVJCVACL@PWVGDMPAGFGAMFGCLGLAP[RVGFOGQQCEGUKVJMWVILMUKLEVJGGLAP[RVKMLIG[VJCVUCQWQGF@[WQKLECLGZJCWQVKTGIG[QGCPAJOGVJMF
key = 0001101, decrypt = aQFBHJMDB@LGFJPBOTBZPBPF@VQJWZ@LM@FQMTJWKBMZ@JSKFQ
lVQ@JSKFQJPMLWSBQWJ@VOBQOZPLSKJPWJ@BWFGPLTLVOGWBHFUFQZOJWWOFWLAQFBHWKFQFBQFLMOZSLPPJAOF@LNAJMBWJLMPLEFM@QZSWJLMHFZPJMLVQP@KFNFTKJ@K@BMAFFBPJOZAQLHFMVPJMDBAQVWFELQ@FBWWB@H
AQVWFELQ@FBWWB@HLMWKJPWZSFLE@JSKFQ@LVOGVWJOJPFBMF[KBVPWJUFHFZPFBQ@KNFWKLGTKJ@KTJOOABPJ@BOOZWQZFUFQZSLPPJAOFFM@QZSWJLMHFZ@LNAJMBWJLMBDBJMPWZLVQFM@QZSWFGNFPPBDF
eLQWKJPSBQWLEWKFSQB@WJ@BO@QFBWFBEVM@WJLMWKBW@BMAQVWFELQ@FGF@LGFBMFM@QZSWFGNFPPBDFTJWKLVWHMLTJMDWKFFM@QZSWJLMHFZWKBWTBPVPFGAZVPJMDBMF[KBVPWJUFHFZPFBQ@KNFWKLG
key = 0001110, decrypt = bREAKING A CODE IS ALWAYS A SECURITY CONCERN WITH ANY CIPHER oUR CIPHER IS NOT PARTICULARLY SOPHISTICATED SO WOULD TAKE VERY LITTLE TO BREAK THERE ARE ONLY POSSIBLE COMBINATIONS OF ENCRYPTION KEYS IN OUR SCHEME WHICH CAN BE EASILY BROKEN USING A BRUTE
FORCE ATTACK a BRUTE
FORCE ATTACK ON THIS TYPE OF CIPHER COULD UTILISE AN EXHAUSTIVE KEY SEARCH METHOD WHICH WILL BASICALLY TRY EVERY POSSIBLE ENCRYPTION KEY COMBINATION AGAINST YOUR ENCRYPTED MESSAGE fOR THIS PART OF THE PRACTICAL CREATE A FUNCTION THAT CAN BRUTE
FORCE DECODE AN ENCRYPTED MESSAGE WITHOUT KNOWING THE ENCRYPTION KEY THAT WAS USED BY USING AN EXHAUSTIVE KEY SEARCH METHOD
key = 0001111, decrypt = cSD@JHOF@BNEDHR@MV@XR@RDBTSHUXBNOBDSOVHUI@OXBHQIDSnTSBHQIDSHRONUQ@SUHBTM@SMXRNQIHRUHB@UDERNVNTMEU@JDWDSXMHUUMDUNCSD@JUIDSD@SDNOMXQNRRHCMDBNLCHO@UHNORNGDOBSXQUHNOJDXRHONTSRBIDLDVIHBIB@OCDD@RHMXCSNJDOTRHOF@CSTUDGNSBD@UU@BJ`CSTUDGNSBD@UU@BJNOUIHRUXQDNGBHQIDSBNTMETUHMHRD@ODYI@TRUHWDJDXRD@SBILDUINEVIHBIVHMMC@RHB@MMXUSXDWDSXQNRRHCMDDOBSXQUHNOJDXBNLCHO@UHNO@F@HORUXNTSDOBSXQUDELDRR@FDgNSUIHRQ@SUNGUIDQS@BUHB@MBSD@UD@GTOBUHNOUI@UB@OCSTUDGNSBDEDBNED@ODOBSXQUDELDRR@FDVHUINTUJONVHOFUIDDOBSXQUHNOJDXUI@UV@RTRDECXTRHOF@ODYI@TRUHWDJDXRD@SBILDUINE
key = 0010000, decrypt = |L[_UWPY_]QZ[WM_RI_GM_M[]KLWJG]QP][LPIWJV_PG]WNV[LqKL]WNV[LWMPQJN_LJW]KR_LRGMQNVWMJW]_J[ZMQIQKRZJ_U[H[LGRWJJR[JQ\L[_UJV[L[_L[QPRNQMMW\R[]QS\WP_JWQPMQX[P]LGNJWQPU[GMWPQKLM]V[S[IVW]V]_P\[[_MWRG\LQU[PKMWPY_\LKJ[XQL][_JJ_]U\LKJ[XQL][_JJ_]UQPJVWMJGN[QX]WNV[L]QKRZKJWRWM[_P[FV_KMJWH[U[GM[_L]VS[JVQZIVW]VIWRR\_MW]_RRGJLG[H[LGNQMMW\R[[P]LGNJWQPU[G]QS\WP_JWQP_Y_WPMJGQKL[P]LGNJ[ZS[MM_Y[xQLJVWMN_LJQXJV[NL_]JW]_R]L[_J[_XKP]JWQPJV_J]_P\LKJ[XQL][Z[]QZ[_P[P]LGNJ[ZS[MM_Y[IWJVQKJUPQIWPYJV[[P]LGNJWQPU[GJV_JI_MKM[Z\GKMWPY_P[FV_KMJWH[U[GM[_L]VS[JVQZ
key = 0010001, decrypt = }MZ^TVQX^\P[ZVL^SH^FL^LZ\JMVKF\PQ\ZMQHVKW^QF\VOWZMpJM\VOWZMVLQPKO^MKV\JS^MSFLPOWVLKV\^KZ[LPHPJS[K^TZIZMFSVKKSZKP]MZ^TKWZMZ^MZPQSF
    OPLLV]SZ\PR]VQ^KVPQLPYZQ\MFOKVPQTZFLVQPJML\WZRZHWV\W\^Q]ZZ^LVSF]MPTZQJLVQX^]MJKZYPM\Z^KK^\T~]MJKZYPM\Z^KK^\TPQKWVLKFOZPY\VOWZM\PJS[JKVSVLZ^QZGW^JLKVIZTZFLZ^M\WRZKWP[HWV\WHVSS]^LV\^SSFKMFZIZMFOPLLV]SZZQ\MFOKVPQTZF\PR]VQ^KVPQ^X^VQLKFPJMZQ\MFOKZ[RZLL^XZyPMKWVLO^MKPYKWZOM^\KV\^S\MZ^KZ^YJQ\KVPQKW^K\^Q]MJKZYPM\Z[Z\P[Z^QZQ\MFOKZ[RZLL^XZHVKWPJKTQPHVQXKWZZQ\MFOKVPQTZFKW^KH^LJLZ[]FJLVQX^QZGW^JLKVIZTZFLZ^M\WRZKWP[
key = 0010010, decrypt = ~NY]WUR[]_SXYUO]PK]EO]OY_INUHE_SR_YNRKUHT]RE_ULTYNsIN_ULTYNUORSHL]NHU_IP]NPEOSLTUOHU_]HYXOSKSIPXH]WYJYNEPUHHPYHS^NY]WHTYNY]NYSRPE    
LSOOU^PY_SQ^UR]HUSROSZYR_NELHUSRWYEOURSINO_TYQYKTU_T_]R^YY]OUPE^NSWYRIOUR[]^NIHYZSN_Y]HH]_W}^NIHYZSN_Y]HH]_WSRHTUOHELYSZ_ULTYN_SIPXIHUPUOY]RYDT]IOHUJYWYEOY]N_TQYHTSXKTU_TKUPP^]OU_]PPEHNEYJYNELSOOU^PYYR_NELHUSRWYE_SQ^UR]HUSR][]UROHESINYR_NELHYXQYOO][YzSNHTUOL]NHSZHTYLN]_HU_]P_NY]HY]ZIR_HUSRHT]H_]R^NIHYZSN_YXY_SXY]RYR_NELHYXQYOO][YKUHTSIHWRSKUR[HTYYR_NELHUSRWYEHT]HK]OIOYX^EIOUR[]RYDT]IOHUJYWYEOY]N_TQYHTSX
key = 0010011, decrypt = OX\VTSZ\^RYXTN\QJ\DN\NX^HOTID^RS^XOSJTIU\SD^TMUXOrHO^TMUXOTNSRIM\OIT^HQ\OQDNRMUTNIT^\IXYNRJRHQYI\VXKXODQTIIQXIR_OX\VIUXOX\OXRSQMRNNT_QX^RP_TS\ITRSNR[XS^ODMITRSVXDNTSRHON^UXPXJUT^U^\S_XX\NTQD_ORVXSHNTSZ\_OHIX[RO^X\II\^V|_OHIX[RO^X\II\^VRSIUTNIDMXR[^TMUXO^RHQYHITQTNX\SXEU\HNITKXVXDNX\O^UPXIURYJUT^UJTQQ_\NT^\QQDIODXKXODMRNNT_QXXS^ODMITRSVXD^RP_TS\ITRS\Z\TSNIDRHOXS^ODMIXYPXNN\ZX{ROIUTNM\OIR[IUXMO\^IT^\Q^OX\IX\[HS^ITRSIU\I^\S_OHIX[RO^XYX^RYX\SXS^ODMIXYPXNN\ZXJTIURHIVSRJTSZIUXXS^ODMITRSVXDIU\IJ\NHNXY_DHNTSZ\SXEU\HNITKXVXDNX\O^UPXIURY
key = 0010100, decrypt = xH_[QST][YU^_SI[VM[CI[I_YOHSNCYUTY_HTMSNR[TCYSJR_HuOHYSJR_HSITUNJ[HNSYOV[HVCIUJRSINSY[N_^IUMUOV^N[Q_L_HCVSNNV_NUXH_[QNR_H_[H_UTVJUIISXV_YUWXST[NSUTIU\_TYHCJNSUTQ_CISTUOHIYR_W_MRSYRY[TX__[ISVCXHUQ_TOIST][XHON_\UHY_[NN[YQ{XHON_\UHY_[NN[YQUTNRSINCJ_U\YSJR_HYUOV^ONSVSI_[T_BR[OINSL_Q_CI_[HYRW_NRU^MRSYRMSVVX[ISY[VVCNHC_L_HCJUIISXV__TYHCJNSUTQ_CYUWXST[NSUT[][STINCUOH_TYHCJN_^W_II[]_|UHNRSIJ[HNU\NR_JH[YNSY[VYH_[N_[\OTYNSUTNR[NY[TXHON_\UHY_^_YU^_[T_TYHCJN_^W_II[]_MSNRUONQTUMST]NR__TYHCJNSUTQ_CNR[NM[IOI_^XCOIST][T_BR[OINSL_Q_CI_[HYRW_NRU^
key = 0010101, decrypt = yI^ZPRU\ZXT_^RHZWLZBHZH^XNIROBXTUX^IULROSZUBXRKS^ItNIXRKS^IRHUTOKZIORXNWZIWBHTKSRHORXZO^_HTLTNW_OZP^M^IBWROOW^OTYI^ZP OS^I^ZI^TUWB    
KTHHRYW^XTVYRUZORTUHT]^UXIBKORTUP^BHRUTNIHXS^V^LSRXSXZUY^^ZHRWBYITP^UNHRU\ZYINO^]TIX^ZOOZXPzYINO^]TIX^ZOOZXPTUOSRHOBK^T]XRKS^IXTNW_NORWRH^ZU^CSZNHORM^P^BH^ZIXSV^OST_LSRXSLRWWYZHRXZWWBOIB^M^IBKTHHRYW^^UXIBKORTUP^BXTVYRUZORTUZ\ZRUHOBTNI^UXIBKO^_V^HHZ\^}TIOSRHKZIOT]OS^KIZXORXZWXI^ZO^Z]NUXORTUOSZOXZUYINO^]TIX^_^XT_^ZU^UXIBKO^_V^HHZ\^LROSTNOPUTLRU\OS^^UXIBKORTUP^BOSZOLZHNH^_YBNHRU\ZU^CSZNHORM^P^BH^ZIXSV^OST_
key = 0010110, decrypt = zJ]YSQV_Y[W\]QKYTOYAKYK][MJQLA[WV[]JVOQLPYVA[QHP]JwMJ[QHP]JQKVWLHYJLQ[MTYJTAKWHPQKLQ[YL]\KWOWMT\LYS]N]JATQLLT]LWZJ]YSLP]J]YJ]WVTA
HWKKQZT][WUZQVYLQWVKW^]V[JAHLQWVS]AKQVWMJK[P]U]OPQ[P[YVZ]]YKQTAZJWS]VMKQV_YZJML]^WJ[]YLLY[SyZJML]^WJ[]YLLY[SWVLPQKLAH]W^[QHP]J[WMT\MLQTQK]YV]@PYMKLQN]S]AK]YJ[PU]LPW\OPQ[POQTTZYKQ[YTTALJA]N]JAHWKKQZT]]V[JAHLQWVS]A[WUZQVYLQWVY_YQVKLAWMJ]V[JAHL]\U]KKY_]~WJLPQKHYJLW^LP]HJY[LQ[YT[J]YL]Y^MV[LQWVLPYL[YVZJML]^WJ[]\][W\]YV]V[JAHL]\U]KKY_]OQLPWMLSVWOQV_LP]]V[JAHLQWVS]ALPYLOYKMK]\ZAMKQV_YV]@PYMKLQN]S]AK]YJ[PU]LPW\
key = 0010111, decrypt = {K\XRPW^XZV]\PJXUNX@JXJ\ZLKPM@ZVWZ\KWNPMQXW@ZPIQ\KvLKZPIQ\KPJWVMIXKMPZLUXKU@JVIQPJMPZXM\]JVNVLU]MXR\O\K@UPMMU\MV[K\XRMQ\K\XK\VWU@IVJJP[U\ZVT[PWXMPVWJV_\WZK@IMPVWR\@JPWVLKJZQ\T\NQPZQZXW[\\XJPU@[KVR\WLJPW^X[KLM\_VKZ\XMMXZRx[KLM\_VKZ\XMMXZRVWMQPJM@I\V_ZPIQ\KZVLU]LMPUPJ\XW\AQXLJMPO\R\@J\XKZQT\MQV]NQPZQNPUU[XJPZXUU@MK@\O\K@IVJJP[U\\WZK@IMPVWR\@ZVT[PWXMPVWX^XPWJM@VLK\WZK@IM\]T\JJX^\VKMQPJIXKMV_MQ\IKXZMPZXUZK\XM\X_LWZMPVWMQXMZXW[KLM\_VKZ\]\ZV]\XW\WZK@IM\]T\JJX^\NPMQVLMRWVNPW^MQ\\WZK@IMPVWR\@MQXMNXJLJ\][@LJPW^XW\AQXLJMPO\R\@J\XKZQT\MQV]
key = 0011000, decrypt = tDSW]_XQWUYRS_EWZAWOEWESUCD_BOUYXUSDXA_B^WXOU_F^SDyCDU_F^SD_EXYBFWDB_UCZWDZOEYF^_EB_UWBSREYAYCZRBW]S@SDOZ_BBZSBYTDSW]
B^SDSWDSYXZO...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here