Cyber Security

Advanced Cryptography article 01 – Advanced Cryptography ගැන දැන ගන්න මෙන්න ඔයාට හොද chance එකක්.

ඔයාලා දන්නවනේ මේ වෙද්දී ලෝකේ ගොඩක් දේවල් 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 වෙනකල් ගන්නත් පුලුවන්)
ÁBCDEFGHIJKLMNOPQRSTUVWXYZ
012345678910111213141516171819202122232425

දැන් අපි 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 ගම්මුකෝ.
ÁBCDEFGHIJKLMNOPQRSTUVWXYZ
012345678910111213141516171819202122232425
  • 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)

hacking
Kdfnlqj

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 ගම්මුකෝ
ÁBCDEFGHIJKLMNOPQRSTUVWXYZ
012345678910111213141516171819202122232425

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 කරන්න පුලුවන්.
ÁBCDEFGHIJKLMNOPQRSTUVWXYZ
1234567891011121314151617181920212222232425

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 කරන විදිය.

kjjyxe
11101025245

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 ගැන කතා කරමු.

What's your reaction?

Excited
0
Happy
3
In Love
0
Not Sure
0
Silly
1

Leave a reply

Your email address will not be published. Required fields are marked *

Next Article:

0 %
Open chat
1
Hello 👋,
Cyber Godzilla Waiting For you !!

හෙල්ප් එකක් ඕනෙද ?