කලින් පාඩම් 2ට තිබුන ප්රතිචාර සමගම ඊලග article ඒකත් දාන්න හදන්නෙ.
අද පාඩමෙන් අපි කථා කරන්නෙ Cryptography ගැන. තනි article කින් ඉවර කරන්න බැරි වුනත් පුලුවන් තරම් කථා කරන්න හිතුවා.
Cryptography කියන්නේ මායා භාෂාව කියන දේ. මේක පාවිච්චි වෙන්නෙ පණිවිඩයක අාරක්ෂාව කියන දේ තහවුරු කරගන්න.
මුලින් ම බැලුවොත් cryptography වලටම අදාල වුනු වචන මාලාවක් තියෙනවා.
- Cleartext/ Plaintext - කියවන්න පුලුවන් විදියට තියෙන messages
- Ciphertext - කියවන්න බැරි විදියට තියෙන messages
- Encryption / Enciphering - cleartext, ciphertext කරන ක්රියාවලිය
- Decryption / Decriphering - ciphertext, cleartext බවට හරවන ක්රියාවලිය
- Cryptosystem - encryption decryption සපයන පද්ධතිය
- Encryption/Decryption Algorithm - Enciphering / Deciphering කරන අාකාරය දැක්වෙන නීති මාලාව
- Key / Cryptovariable - Encryption/ Decryption ක්රියාවලියට ලැබෙන අාදායනයක් - an input. මේක හුගක් වෙලාවට random variables වෙනවා. මේකෙදි key විසින් තමයි මේ මුලු ක්රියාවලියේම secrecy පවත්වාගෙන යන්නේ. යවන්නා හා අදාල ලබන්නා අතේ විතරයි මේ key පවතින්න පුලුවන්.
- Eavesdropper - නැතිනම් හොරෙන් සවන් දෙන්නා. මොහු විසින් encrypted message මගදි අල්ලගත්තාට වැඩක් නැහැ මොහු ලග key නැත්නම්.
- Key space - යතුරකට තියෙන්න පුලුවන් මුලු අගය පරාසය. මේ key sapace විශාල වන තරමටම intruder / eavesdropper කෙනෙකුට හොයාගන්න අමාරුයි. 64 bit යතුරකට 2^64 විවිධ key combinations තියෙනවා.
- Cryptanalysis - secrecy සම්බන්ධව අධ්යයනය කරන හා ඒ encrypt messages බිද දැමීමට අදාල විද්යාව.
- Cryptology - cryptography cryptanalysis ගැන අධ්යයනය කිරීම
Ciphers ප්රධාන වර්ග කිහිපයක් තියෙනවා.
- Classical ciphers
- Rotor Machines
- Modern විදිහට
Classical වර්ගය ප්රධාන කොටස් 2යි.
- Substitution
- Transposition කියලා
මේකෙ Substitution cipher කියන්නේ අදාල පණිවිඩයට අදාල වන සියලු අකුරු වෙනත් අකුරු වලින් substituted වෙන අාකාරය.
උදාහරණයක් විදියට කියනවානම් Sunil කියන දේ වෙනස් කරලා ලියන්න පුලුවන් Gaint කියලා. මේ ක්රමයට අකුරු පිහිටලා තියෙන පිළිවෙළ වෙනස් වෙන්නේ නෑ.
මේකට උදාහරණ වෙන්නේ Caesar's Ciper, Vignere Ciper වගේ ඒවා.
Transposition Ciper - සාමාන්ය plain text ඛණ්ඩය replace වීමක් වෙන්නෙ නෑ. හැබැයි ඒවා jumble වෙනවා. plaintext වාක්ය කණ්ඩයම අකුරු තියෙන තැන් මාරු වෙලා කියවන්න අමාරු විදියට වෙනස් වෙනවා.
Substitution Ciphers Types කිහිපයක් තියෙනවා.
- Monoalphabetic Ciphers - මේ වර්ගයේදී මුලු පණිවිඩය වෙනුවෙන්ම භාවිතා වන අාදේශනයේ යම් නිශ්චිත රටාවක් තියෙනවා.
- Polyalphabetic Ciphers - පණිවිඩය අැතුලේදි විවිධ අාකාර වල substitutions කිහිපයක් භාවිතා වෙනවා.
Kerckhoff's Principle - මේ නියමය 1883දී ඔගස්ටස් කර්කොෆ් තමයි publish කළේ. ඔහු කියනවා cryptosystem ඒකක key විතරක් secret වුනාම අැති කියලා. algorithm publish කරන්න කියලත් ඔහු කියනවා. Eavesdropper කොහොමත් මේ algorithm ඒක ලබාගන්නවාමයි.
අපි කොහොමද යතුරක් යවන්නෙ අනෙක් කොටසට අන් අය දැනගන්නේ නැතුවම
යතුරක් ප්රවේසම් සහගතව තබාගන්නේ කොහොමද?
Scytale Cipher - මේක භාවිතා කළේ ක්රි.පූ 400 දී. අදාල පණිවිඩය යැව්වේ පැපිරස් කොළ කැබැල්ලක ලී රවුමක දවටලා. ඒ රවුම ගන්න පුද්ගලයාට අදාල පණිවිඩය කියවන්න බැහැ. ඒ සදහා ඔහු ලග නිවැරදි ලී රවුම පැවතිය යුතුයි.
Caesars Cipher - මේ ක්රමය භාවිතා කළේ ජුලියස් සීසර් විසින්. මෙයා රහස් පණිවිඩ යැවීමේදී හැම අකුරක්ම හෝඩියේ ඊට අකුරු 3ක් දකුණින් තිබෙන අකුරින් replace කළා. මේකටම තව Rotation - 3 cipher නැත්නම් ROT-3 cipher කියනවා.
Vigenere Cipher - 16 වන සියවසේ ප්රංශයේදී Blaise de Vignere විසින් polyalphabetic substitution cipher 1ක් නිර්මාණය කරනවා II Henry රජතුමාට. Ceasers cipher මත පදනම් වුනාට ඊට වඩා වඩා සෑහෙන්න සංකීර්ණයි.
අපි ටිකක් සරළ උදාහරණයක් ගත්තොත් MAKE IT HAPPEN කියන පණිවිඩයට MATH කියන යතුර භාවිතා කරනවා. මේකට Vigenere tableයක් භාවිතා වෙනවා. හෝඩියේ අකුරු 26න් තමයි මේක සමන්විත වෙන්නේ. මේක lookuptable විදියට substitutions ගාන ගැනගන්න පාවිච්චි වෙනවා.
A-Z වෙනකන් පවතින වගුවක් තිබෙනවා.
මේ වගුව භාවිතා කරලා අපේ යතුර වුනු MATH කියන වචනයේ අදාල අංක ලබාගන්නවා.
M - 12
A- 0
T - 19
H - 7
විදියට තමයි පවතින්නේ. ඊලගට අපේ පණිවිඩය වුනු MAKE IT HAPPEN වාක්යයේ සෑම වචනයක්ම cover වෙන විදිහට ඒ වාක්යය ලගින්ම අපි ලියනවා.
MAKE IT HAPPEN
MATH MA THMATH
විදියට.ඔබට දකින්න පුලුවන් අපි MATHMATH වගේ දාපු තැනට ඉලක්කම් අාදේශ කරනවා.
MAKE IT HAPPEN
(12)(0(19(7) - (12)(0) - (19)(7)(12)(0)
ඊලගට අපි බලන්නෙ අැත්තටම මේ අකුරට තියෙන අගය කීයද කියන දේ ගැන.පහළ සටහන ඒ ගැන දක්වනවා.
MAKE IT HAPPEN
(12)(0(19(7) - (12)(0) - (19)(7)(12)(0)
(12)(0)(10)(4) - (8)(19) - (7)(0)(15)(15)(4)(13)
මීලගට කරන්නේ අපේ අකුරට අදාල වෙන අංකය හා යතුර මගින් ලැබුනු අංකය අතර සම්බන්ධතාවයක් මගින් මේ තනි තනි අකුරු වලට අදාල රහස්ය අකුර ලබාගන්නවා.
Encryption වලදි භාවිතා වෙන්නෙ C = (P+K)mod 26 සමීකරණය
Decryption වලට භාවිතා වෙන්නේ P = (C-K)mod 26 සමීකරණය
මේකෙ C = cipher text , P = plain text , K= key
Cipher text ගනිද්දි කියලා තියෙනවා වගේම අගයන් දෙකේ ඒෙක්යය අරගෙන ඒක 26න් බෙදුවට පස්සෙ ලැබෙන අගයට අදාල අකුර අපේ cipher text විදියට සලකනවා.
M අකුර :-
C = (P+K)mod 26
C = (12+12)mod26
= 24 mod 26 = 24
= "Y"
මේ විදියට අගයන් අාදේශ කරමින් අකුරු සොයාගන්නයි තියෙන්නේ.
Playfair Cipher - මේක හොදින් දන්න වර්ගයේ multiple letter encryption cipher ඒකක්.diagrams පාවිච්චි කරලා තමයි මේක encrypt කරන්නේ. මේකෙ ප්රධාන නීතියක් තමයි key ඒකේ repeating letters තියෙන්න විදිහක් නෑ.
අපි හිතුවොත් අපේ යතුර =MONARCHY කියලා අපි ඒක අපේ diagram ඒකේ දක්වන්නේ මෙහෙම.
M |
O |
N |
A |
R
|
C |
H
|
Y
|
B
|
D
|
E |
F
|
G
|
I/J |
K |
L
|
P
|
Q
|
S
|
T |
U
|
V
|
W
|
X
|
Z
|
මේකෙ I හා J අකුරු 2 වෙනුවටම තනි කොටුවක් පාවිච්චි වෙන නිසා අකුරු 26ම මේ සටහන අැතුලේ ලියන්න පුලුවන්.
මීලගට අපේ msg ඒක ලෑස්ති කරගන්නවා. duplicate අකුරු සේරම X අකුර යොදවලා වෙනස් කරගන්නවා.
මුලු වාක්යයට අකුරු ඔත්තේ ගානක් තිබ්බොත් අන්තිමට X අකුරක් යොදනවා අපි.
Spaces සේරම අයින් කරනවා.
අපි හිතුවොත් අපේ mg ඒක වෙන්නෙ SECRET MESSAGE කියන වාක්ය ඛණ්ඩය ගැන කියලා.
අපි කඩාගන්නවා මේක SE CR ET ME SX SA GE විදිහට.
මේක දෙකම තනි row ඒකකදි වුනානම් අපි Cipher text විදිහට දකුණු පැත්තේ අකුර සළකනවා.
තනි column ඒකක වුනානම් අපි සලකන්නෙ පහළින්ම තියෙන අකුර. පහළින්ම තියෙන අකුරනම් අැවිත් තියෙන්නෙ අපි සලකන්නෙ ඉහළම අකුර. උදාහරණ විදිහට H හා V අකුරු ගත්තොත් ඒවාගෙ cipher letters වෙන්නෙ F හා O.
වෙනස් පොලිම් 2ක් වුනොත් ඒ අකුරු 2 විකර්ණ වන විදියට සෘජුකෝණාස්රයක් අැදලා අනෙක් විකර්ණ 2 cipher text විදියට සලකනවා.
Enigma - Rotor Machine
ජර්මණිය දෙවන ලෝක යුද්ධෙදි පාවිච්චි කළේ මේ ක්රමය. Enigmaට පුලුවන් වෙනස් substitutions 7ක් පෙන්වන්න. මේකෙන් rotors 3ක්ම පාවිච්චි කළේ ployalphabetic substitions වලට. reflector ඒකක් හා plug board ඒකක් විසින් මේක තවත් complexity කළා. rotor settings වලින් encryption key ඒක provide කළා. මේ enigma codes අවසානයේදි බ්රිතාන්ය හා පාේලන්ත ගණිතඥයින් විසින් බිද දැමීම ජර්මණිය පැරදීමට මග පෑදුවා.
Cryptosystem පද්ධතියක ප්රයෝජන:
- Confidentiality - අනවසර පිරිස් වලට තොරතුරු ලැබීමේ මාර්ග අහුරනු ලබනවා.
- Authenticity - පණිවිඩයේ අාරම්භය තහවුරු කරනවා. මේ මගින් යවන්නා නිවැරදි බව හදුනාගැනීමට.
- Intergrity - විශ්වාසයක් ලබාදෙනවා මුලින් යැවුණු පණිවිඩයම නැවතත් ලැබෙනවා කියලා වෙනසකින් තොරව
- Nonrepudiation - මේ වචනය පාවිච්චි කරනවා මනුස්සයෙක්ගෙ නාෙහැකියාව කියන්න යමක් ප්රතික්ෂේප කරන්න.
One time pad - මේක සොයාගත්තෙ 1917දී Gilbert Vernam.මේකෙදි පණිවිඩය binary කරනවා. ඊලගට බිහි වෙනවා one time pad ඒකක්, ඒක සමන්විත වෙන්නේ random sequence of bits වලින්.
ciphertext හදන්න plaintext ඒක exclusive-ORed වෙනවා
Decrypt වෙන්නත් ciphertext ඒක one time pad හරහා යවන්න ඔින.
පහත කරුණු සම්පූර්ණ වුනාම one-time pad ඒක unbreakable වෙනවා.
- pad පාවිච්චි කරන්න පුලුවන් තනි පාරයි.
- pad ඒකත් message ඒක තරම්ම දිග වෙන්න ඔින.
- pad ඒක තනිකරම random values වලින් හැදිලා තියෙන්න ඔින.
Running Key Cipher
මේ cipher ඒක අැල්ගොරිතමයක් මත නෙවෙයි පදනම් වෙන්නෙ. මේක පදනම් වෙන්නෙ යම් පොතක යම් පිටුවක අකුරු මත.
- Plaintext - f l e e a t o n c e
- Running key - E R R O R S C A N
- Ciphertext - J C V S R L Q N P S
- යතුර ගත්තේ The C program language page 63 line 1
- create කරනවා fake block ඒකක් page number හා line number ඒක පෙනෙන්න.
- Indicater block වෙන්නෙ (06301)- AGDAB
Stenography - වෙනත් මාධ්ය වර්ගයක දත්ත සගවනු ලබනවා.මෙමගින් දත්ත සියල්ලම සැගවෙනවා. සාමාන්යයෙන් නම් image fileඒකක සගවනවා. මෙහෙම කළාම රූපයේ අවසාන pixel ඒකේ අවසාන bit ඒක දක්වාම පණිවිඩය අරන් යන්න පුලුවන් රූපයේ පෙනුමට බාධාවක් වෙන්නෙ නැතුව.
Transportation Cipher
- Rail fence cipher -මුලින් තිබුණු පිළිවෙල නොගැලපෙන අාකාරයට පැවතුන diagram ඒක පසුව නිවැරදි පිළිවෙලට සකස්කරලා ඉදිරිපත් කළාම පහත අාකාරය වෙනවා.
APPLEISVERYTASTY →→ ERYTAPPLASTYEISV
X |
1 |
2 |
3 |
4 |
2 |
A |
P |
P |
L |
4 |
E |
I |
S |
V |
1 |
E |
R |
Y |
T |
3 |
A |
S |
T |
Y |
X |
1 |
2 |
3 |
4 |
1 |
E |
R |
Y |
T |
2 |
A |
P |
P |
L |
3 |
A |
S |
T |
Y |
4 |
E |
I |
S |
V |
අද පාඩම නොතේරුනු තැන් පහළින් ලියන්න යාලුවනේ. තවත් කොටසක් අරන් ලගදිම හමුවෙමු.