ඔයාලා දන්නවනේ මේ වෙද්දී ලෝකේ ගොඩක් දේවල් technology එකත් එක්ක move වෙලා තියෙන්නේ කියලා. ඒ නිසාම Cyber security side එකට මේ වෙද්දී ලෝකේ වැඩි අවදානයක් යොමු වෙලා තියෙනවා.
එතකොට Cyber security වලට Advanced Cryptography සම්බන්ද වෙන්නේ කොහොමද? ඒ දේවල් ගැන කතා කරන්න කලින් අපි පොඩ්ඩක් Cyber security වල Key elements එහෙම නැත්නම් CIA triad, hashing, digital signature, public key, privet key වගේ දේවල් ගැන මතක් කරන් එමු.

Cyber security ගැන කතා කරනකොට අපි දැන ගන්න ඕනි මූලිකම දෙයක් තමයි CIA Triad කියලා කියන්නේ.
C – Confidentiality
I – Integrity
A – Availability
Confidentiality කියන්නේ, data වල රහස්යභාවය. ඒ කියන්නේ ඔයා හිතනකෝ example එකක් විදියට ඔයා online කාට හරි money transfer කරනවා කියලා. එතකොට ඔයා ඔයාගේ username password දීලා system එකට log වෙනවා. එහෙම ඔයා system එකට log උනාම ඔයාගේ දැනට account balance එක වගේ ඔයාට related දේවල් තමයි ඔයාට පෙන්නනේ. ඒ වගේම ඔයාට අනෙත් bank users ලගේ details බලා ගන්න පුලුවන් වෙන්නේ නැගැ. ඒ details ඔයාට relevant නැති නිසා.
ඒ වගේම තමයි ඔයා හිතන්නකෝ bank එකේ employee කෙනෙක් ඉන්නවා කියලා. මේ employee එයාගේ username password ගහලා මේ banking system එකට log වෙනවා. එතකොට එයාට පෙන්නේ එයාගේ job එකට related details විතරයි. ඔයාගේ banking details ගැන එයට බලන්න බැහැ. ඉතිං මේ වගේ අදාල details විතරක් view කරන එක තමයි confidentiality කියලා කියන්නේ.
එතකොට මොකක්ද integrity කියලා කියන්නේ? Integrity එහෙම නැත්නම් trustworthiness කියලා කියන්නේ අපි input කරපු data chance වෙලා නැහැ කියන එක. ඒ කියන්නේ ඔයා bank එකත් එක්ක online banking කරනකොට ඔයා කරපු transactions විතරයි ඔයාගේ account එකේ පෙන්නන්න ඕනි. ඒ දේවල් වලට අමතරව ඔයා bank එක හරහා කරපු නැති transactions පෙන්නන්න බැහැ.
ඊලගට කතා කරන්න තියෙන topic එක තමයි availability කියලා කියන්නේ. ඒ කියන්නේ අපට අවශ්ය වෙලාවෙදී data බලන්න පුලුවන් වෙන්න ඕනි. ඒ කියන්නේ ඔයා username password දීලා system එකට log උනාම ඔයාට අදාලා details බලා ගන්න පුලුවන් වෙන්න ඕනි.
හරි. ඊලගට ඔයා දැන ගන්න ඕනි Symmetric key encryption, Asymmetric key encryption, hashing, digital signature, public key, privet key වගේ දේවල්. ඒවා ඔයාට මේ article එක read කරලා දැන ගන්න පුලුවන්. https://hacking.lk/networking-article-10-symmetric-encryption-asymmetric-encryption-digital-signature-hashing/
දැන් අපි බලමු Advanced Cryptography කියන්නේ මොකක්ද? ඇයි ඒක අපට වැදගත් වෙන්නේ කියලා.
සරලවම ගත්තොත් Cryptography කියලා කියන්නේ මොකක් හරි communication එකක් වෙනකොට ඒ communicate වෙන data unauthorized party එකකට කියව ගන්න බැරි විදියට වෙනස් කරලා communicate කරන එක. ඒ වගේම තමයි මේ වෙද්දී ලෝකේ ගොඩක් තැන් වල Cryptographic Systems use කරනවා. ඒවට examples විදියට LMS Systems, Banking Systems ගන්න පුලුවන්.
හරි example එකක් විදියට LMS (Learning Management System) Systems එකක් ගම්මුකෝ. එතකොට ඒකේ user ලා වෙන්නේ Students, Lecturers, Admin නේ. එතකොට මේ system එක develop කරනකොට development team එක අදාල පාර්ශව වලට වෙන වෙනම features එක්ක තමයි develop කරන්නේ. ඒ කියන්නේ Lecturers ලට පුලුවන් වෙන්නේ lecture materials, recordings, quiz වගේ දේවල් upload කරන්න. Students ලට පුලුවන් වෙන්නේ lecture materials, recordings, download කරන්න සහ assignmet වලට answers upload කරන්න. Admin එකට පුලුවන් වෙන්නේ Lecturers ලා, Students ලා system එකට add or remove කරන්න.
Advanced Cryptography කියන topic එක ගත්තම ඒකේ mainly අපට Classical Ciphers, Stream Chirpers, Block chippers, DES variants and AES, Symmetric key exchange වගේ ගොඩක් දේවල් කතා කරන්න තියෙනවා.
දැන් එහෙනම් මේ දේවල් ගැන අපි එකින් එක කතා කරන් යමු.
Classical Ciphers
Classical ciphers විදියට අපට මේ ciphers ගන්න පුලුවන්.
- Substitution Cipher
- Affine Cipher
- Hill Cipher
- One time pad
දැන් අපි එහෙනම්, මේ Ciphers මොනවද කියලා අදුර ගම්මු.
Substitution Cipher
Substitution chipper කියන්නේ plaintext එකක් Chipertext එකක් කරන්න use කරන most common method එකක් කිව්වොත් හරියටම හරි. Substitution chipper mainly parts දෙකකට බෙදෙනවා.
Mono alphabetic chippers
Mono alphabetic chippers වලදී එක plaintext එකේ same letters වලට Chipertext එකෙත් same letter මයි use වෙන්නේ.
Plaintext – HELLO
Chipertext – CVBBL
මේකෙදී plaintext එක විදියට HELLO use කරලා තියෙනවා. මේකේ Chipertext එක විදියට අපට ලැබිලා තියෙන්නේ CVBBL. ඔයාලට පේනවනේ Plaintext එකේ LL වෙනුවට Chipertext එකේ BB use වෙනවා.
Poly alphabetic chippers
Poly alphabetic chippers වලදී plaintext එකේ same letters වලට Chipertext එකේ different letters use වෙන්නේ.
Plaintext – HELLO
Chipertext – CVNBL
Substitution chipper වලට හොද example එකක් තමයි caser chipper කියලා කියන්නේ. දැන් අපි ඒක වැඩ කරන විදිය ගැන බලමු.
Caser Chipper
ඔයාලා අහලා තියෙනවද Julius Casersකියන රජතුමා ගැන? මේ රජතුමා යුද්ධ කරන කාලේ රහස්ය පණිවිඩ හුවමාරු කර ගන්න භාවිතා කරපු ක්රමයට තමයි Caser Chipper කියලා කියන්නේ. හරි දැන් අපි මේක example එකක් එක්ක tryකරලා බලමු.
- මුලින්ම අපි alphabet එකට 0 – 25 වෙනකල් numbers assign කර ගම්මු. ( ඔයාලට ඕනි නම් මේක 1 – 26 වෙනකල් ගන්නත් පුලුවන්)
Á | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
දැන් අපි Caser Chipper Algorithm එක ගැන බලමු.
p = plaintext
C = Chipertext
E = Encryption
K = Key
C = (p + K ) mod 26
p = (C – K) mod 26
මොකක්ද මේ Key කියන්නේ?
ඔයා මෙහෙම හිතන්නකෝ ඔයාට මේ විදියට alphabet එකක් දීලා තියෙනවා. ඔයාට කියනවා D කියන letter එක Key 3 (Shift 3) වලින් encrypt කරන්න කියලා ඒ කියන්නේ,

දැන් ඔයාලට පේනවා නේද D කියන letter එක Key 3 කින් encrypt වෙලා තියෙන හැටි. ඒ කියන්නේ D වෙනුවට A use කරන්න පුලුවන් වෙනවා.
හරි එතකොට කලින් Chipper Algorithm එකේ Mod 26 කියලා කොටසක් තිබ්බා නේද? ඒක මොකටද use කරන්නේ? දැන් අපි බලමු ඒක ගැන.
- ඔන්න අපි example එකක් විදියට hacking කියන word එක ගම්මුකෝ.
- මේ තියෙන්නේ alphabet එකට 0 – 25 වෙනකල් assign කරපු numbers.
- Key එක විදියට 3 ගම්මුකෝ.
Á | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
- C = (P + K) Mod 26
- දැන් hacking කියන word එකේ මුල්ම වචනය h නේ. එතකොට alphabet එකට 0 – 25 වෙනකල් assign කරපු numbers වලට අනුව h කියන්නේ 7.
C = (P + K) Mod 26
= (7 + 3) Mod 26
= 10 (K)
ඒ කියන්නේ h කියන letter එක encrypt උනාම k කියලා අපට ගන්න පුලුවන් වෙනවා.
දැන් අපි ඊලග අකුරු ටික encrypt කර ගන්න විදිය බලමු.
C = (P + K) Mod 26
= (0 + 3) Mod 26
= 3 (d)
C = (P + K) Mod 26
= (2 + 3) Mod 26
= 5 (f)
C = (P + K) Mod 26
= (10 + 3) Mod 26
= 13 (n)
C = (P + K) Mod 26
= (8 + 3) Mod 26
= 11 (l)
C = (P + K) Mod 26
= (13 + 3) Mod 26
= 16 (q)
C = (P + K) Mod 26
= (6 + 3) Mod 26
= 9 (j)
h | a | c | k | i | n | g |
K | d | f | n | l | q | j |
Hacking කියන word එක encrypt කරාම ඔයාට result එක විදියට kdfnlqj ගන්න පුලුවන්.
මේ word එකට අනුව නම් Mod 26 අපට use කරන්න ඕනි උනේ නෑ. ඒත් ඔයා හිටන්නකෝ alphabet එකේ අන්තිම හරියේ letter එකක් අපට encrypt කරන්න තිබුනා කියලා. එතකොට Mod 26 අපට ඕනි වෙනවා.
Example එකක් විදියට z encrypt කරොත්,
C = (P + K) Mod 26
= (25 + 3) Mod 26
= 28 Mod 26
= 2 (c)
එතකොට අපට z වෙනුවට c ආදේශ කරන්න පුලුවන් වෙනවා.
දැන් අපි බලමු kdfnlqj decrypt කරන්නේ කොහොමද කියලා
- මේ තියෙන්නේ alphabet එකට 0 – 25 වෙනකල් assign කරපු numbers.
- Key එක විදියට 3 ගම්මුකෝ
Á | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
p = (C – K) mod 26
kdfnlqj first letter එක k.
K value = 10
p = (C – K) mod 26
= (10 -3) mod 26
= 7 (h)
d value = 3
p = (C – K) mod 26
= (3 -3) mod 26
= 0 (a)
f value = 5
p = (C – K) mod 26
= (5 -3) mod 26
= 2 (c)
මේ විදියට Encrypt කරන් ගියාම ඔයාලට kdfnlqj කියන්නේ hacking කියලා හොයා ගන්න පුලුවන් වෙනවා.
Caser cipher වල pros & corns මොනවද කියලා දැන් අපි බලමු.
- Caser cipher implements කරන්න ලේසී වගේම හරිම simple. හැබැයි මේකේ encryption and decryption process එක ලේසී නිසා කෙනෙක්ට ඉක්මට brake කරන්න පුලුවන් වෙනවා.
- ඒ වගේම තමයි alphabet එක use කරන නිසා hacker කෙනෙක්ට brute force attack එකක් දෙන්න ලේසී. මොකද keys 26 නේ try කරන්න ඕනි. ඒ කියන්නේ security එක ගොඩක් අඩුයි.
දැන් අපි Classical ciphers වල second topic එක, Affine cipher ගැන කතා කරමු.
Affine cipher
ඊලගට අපට කතා කරන්න තියෙන්නේ Affine cipher එක ගැන. මේකේ encryption algorithm එක සහ decryption algorithm එක මොකක්ද කියලා දැන් අපි බලමු. ඒ වගේම තමයි affine cipher එකේදී ඔයාට key දෙකක් use කරන්න වෙනවා.
Encryption algorithm = C = ((p * k1) + k2) mod 26
Decryption algorithm = p = ((C-K2) *K-1) mod 26
දැන් අපි මේ algorithm use කරලා AFFINE කියන word එක encrypt කරන විදිය සහ decrypt කරන විදිය බලමු.
K1 = 5
K2 = 6
- මේ තියෙන්නේ alphabet එකට 1 – 26 වෙනකල් assign කරපු numbers. (කලින් එකේ අපි 0 – 25 වෙනකල් assign කරේ. මේකේ 1 -26 වෙන්ක කරන්න්නේ. ඔයාලට 0 -25 වෙන්කල් උනත් use කරන්න පුලුවන්.
Á | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 22 | 23 | 24 | 25 |
Plain text = A F F I N E
= 1 6 6 9 14 5
C = ((p * k1) + k2) mod 26
= ((1 *5) + 6) mod 26
= 11 mod 26
= 11(c)
C = ((p * k1) + k2) mod 26
= ((6 *5) + 6) mod 26
= 36 mod 26
= 10(j)
C = ((p * k1) + k2) mod 26
= ((6 *5) + 6) mod 26
= 36 mod 26
= 10(j)
C = ((p * k1) + k2) mod 26
= ((9 *5) + 6) mod 26
= 51 mod 26
= 25(y)
C = ((p * k1) + k2) mod 26
= ((14 *5) + 6) mod 26
= 76 mod 26
= 24(x)
C = ((p * k1) + k2) mod 26
= ((5 *5) + 6) mod 26
= 30 mod 26
= 5(e)
A F F I N E වල Chipertext එක විදියට ඔයාට kjjyxe හම්බු වෙලා තියෙනවා. දැන් අපි බලමු මේක decrypt කර ගන්නේ කොහොමද කියලා.
Decrypt කරනකොට ඔයාට K-1 ඕනි වෙනවා.
K2 = 6
K-1 = 21
p = ((C-K2) *K-1) mod 26
දැන් අපි බලමු decrypt කරන විදිය.
k | j | j | y | x | e |
11 | 10 | 10 | 25 | 24 | 5 |
p = ((c-k2) *k-1) mod 26
=(11 – 6) * 21 mod 26
= 5 * 21 mod 26
= 105 mod 26
= 1(a)
මේ විදියටම ඔයාට අනෙත් letters decrypt කරාම affine කියන word එක ගන්න පුලුවන් වෙනවා.
- 11 − 6 ∗ 21 𝑚𝑜𝑑 26 = 1 = 𝐴
- 10 − 6 ∗ 21𝑚𝑜𝑑 26 = 6 = 𝐹
- 10 − 6 ∗ 21𝑚𝑜𝑑 26 = 6 = 𝐹
- 25 − 6 ∗ 21𝑚𝑜𝑑 26 = 9 = 𝐼
- 24 − 6 ∗ 21𝑚𝑜𝑑 26 = 24 = 𝑁
- 5 − 6 ∗ 21𝑚𝑜𝑑 26 = 5 = E
Affine Cipher වල pros & corns මොනවද කියලා දැන් අපි බලමු.
- Affine cipher එකත් caser cipher එක වගේම implements කරන්න ලේසී. හැබැයි මේකේ encryption and decryption process එකට key 2 ක් use කරන නිසා security එක තරමක් වැඩී .
- හැබැයි brute force attack එකක් කරලා මේ encryption එක brake කරන එක hacker කෙනෙක්ට ලොකු දෙයක් නෙවෙයි.
දැන් එහෙනම් ඔයාලට Substitution Cipher සහ Affine Cipher ගැන හොද idea එකක් එන්න ඇති. ඊලග article එකෙන් අපි classical ciphers වල Hill Cipher & One time pad ගැන කතා කරමු.