දැනට තිබෙන පාඩම්...

Saturday, May 6, 2017

Information Security ගැන ඔබ දන්නේ මොනවාද? - 4 පාඩම

පහුගිය පාර අපි කථා කළා ඉස්සර කාලෙ පාවිච්චි වුනු Cipers ගැන. අද අපි කථා කරන්න යන්නෙ අද කාලෙ පාවිච්චි වෙන Cryptosystems ගැන නැත්නම් Modern Cryptosystems ගැන. මේ Cryptosystems ප්‍රධාන කොටස් 2යි.

  1. Symmetric Cryptosystems
  2. Asymmetric Cryptosystems
Symmetric Cryptosystems - යවන්නා හා ලබන්නා දෙන්නම පාවිච්චි කරන්නේ තනි key ඒකක්. ඒකට කියනවා secret key නැත්නම් shared key කියලා. මේකෙ වාසි තමයි වේගයෙන් encryption decryption processes වෙනවා. key විශාල වෙන තරමට බිදීමට අපහසුයි. 
අවාසි තමයි හැම usersලා යුගලයකටම තනි යතුරක් අවශ්‍ය නිසා keys භාවිතා කරන පුද්ගලයන් ගාන වැඩි වෙනවා. usersලා n ගානක් උන්නොත් key ඔින වෙනවා n(n-1)/2 ප්‍රමාණයක්. යතුරු ටික නිවැරදිව යවාගන්න නිවැරදි ක්‍රියාමාර්ගයක් ගන්න ඔින. මේකෙන් confidentiality ලබා දුන්නාට authenticity හෝ non repudiation සපයන්නෙ නෑ.
Ex: DES, Triple DES,  Blowfish 

Asymmetric Cryptosystems - encript හා decript කරන්න keys 2ක් ඔින. පළවෙනි key, පාවිච්චි වෙන්නෙ encrypt වලට. දෙවෙනි key, පාවිච්චි වෙන්නෙ decrypt වලට. මුල් key ඒක public key, දෙවෙනි ඒක private key. private key ඒක අයිතිකාරයා ගාව විතරමයි තියෙන්නෙ. public key ඒක හැමෝම දන්නවා. 
මේ 2 අතර ගණිතමය සම්බන්ධයක් තිබ්බට private key ඒකෙන් public key ඒක හදාගන්න බෑ. 

Secure Message Format: යවන්නා msg encrypt කරනවා ලබන්නාගෙ public key පාවිච්චි කරලා. දැන් ඒක කියවන්න පුලුවන් ලබන්නාට විතරයි මොකද ඒ කෙනා ගාව විතරයි තමන්ගෙ private key copy ඒකක් තියෙන්නෙ. රහස්‍යභාවය අාරක්ෂා වුනාට යවන්නාව නිවැරදිව සාෙයාගන්න බෑ මොකද යවන්නාගෙ key ඒකක් encrypt decrypt වලට ඔින වෙන්නෙ නැති නිසා.
Open Message Format: යවන්නා තමන්ගෙ private key පාවිච්චි කරලා encrypt කරනවා. ඊට පස්සෙ ඒ පුද්ගලයාගෙ public key යම් කෙනෙක් ලග තියෙනවානම් ඒ ලබන්නාට පුලුවන් මේක decrypt කරගන්න. මේකෙ ප්‍රධාන වාසිය තමයි symmetric key වලට වැඩිය key distibution හොදයි හැබැයි slow.

මොකක්ද මේ DES කියන්නෙ?? 

DES නැත්නම් Data Encryption Standard දැනට ලෝකයේ භාවිතා වන ප්‍රසිද්ධම symmetric algorithms වලින් ඒකක්. මේක block cipher ගණයට තමයි අයිති. මේකෙ key ඒක ඉස්සර 128 bit size වුනාට දැන් 56 bit size වෙනවා.

DES Key : මේ DES key ඒක 64 bits වුනාට සෑම bit 8කටම සැරයක් parity bit ඒකක් තියෙනවා. මේ නිසා හරියටම පාවිච්චි වෙන්නෙ 56 bit key ඒකක් විතරයි. (64-8 = 56)

DES Algorithm:

මේක block cipher algorithm ඒකක්. මේක වැඩ කරන්නෙ 64 bit plaintext ඒකක් මත. මේ තනි තනි block වෙලාවෙන් වෙලාවට encrypt කරලා තමයි අවසාන ciphertext ඒක ලැබෙන්නෙ.
  1. මේකෙදි මුල්ම පියවර විදියට අපි අපේ මුලු පණිවිඩයම 64 bit කොටස් වලට කඩාගන්නවා. 
  2. මීලගට කරන්නෙ initial permutation කියන පියවර. මේකෙදි වෙන්නෙ අපේ 1bit -64bit වෙනකන් තිබෙන සියලුම bits කලවම් කරනවා. මේ රූපයේ තියෙන පිලිවෙලට. තමයි bits මාරුවෙන්නෙ. (58 bit ඒක මුලින්ම)
  3. අපි දැන් බලමු key වෙනස් වෙන්නෙ කොහාෙමද කියලා.  සාමාන්‍ය විදිහටනම් 56 bit key ඒක 16කට divide කරලා 48 bit sub keys ටිකක් හදාගන්නවා.
  4. අැත්තටම වෙන්නෙ 56 bits වුන key ඒක bit 56කට කඩලා shuffle නැතිනම් කළවම් කරනවා. හොදට බැලුවොත් ඔබට දකින්න පුලුවන් මේක 7*8(=56) ප්‍රමාණයේ ඒකක් කියලා. මේකට ඉහලින් තිබෙන රූපය 8*8 ප්‍රමාණයේ ඒකක්.
  5. මේ විදියට shuffle වුන key ඒකට අපි කියනවා permuted key කියලා. 
  6. මීලගට කරන්නෙ මේ permuted key ඒක ප්‍රධාන කොටස් 2කට කඩා ගන්නවා.  අපි කියමු ඒවට C0 D0 කියලා. මේ තනි කොටසක 28 bits අන්තර්ගත වෙනවා. 
  7. මීලගට අපි කරන්නෙ ඒක පියවරකදි bit 1 බැගින් ඉදිරියට යවනවා.අනිත් පැත්තට කියනවානම් මුලින්ම තියෙන bit ඒක පස්සට යවනවා. 
  8. දෙවෙනි පියවරේදිත් මුලින්ම තියෙන bit 1 පස්සට යනවා. මේ විදියට 1,2 , 9, 16 පියවර වලදි තනි bit ඒකකුත් අනික් හැම පියවරකදිම bit 2කුත් පස්සට යනවා. 
  9. මේ 1 bit ක් පස්සට ගිහින් හැදුනා C1 D1 දෙන්නා.ඊලග පියවරේ තව bit ඒකක් ගිහින් හැදුනා C2 D2 දෙන්නා. මේ C1 හා D1 දෙන්නා ඒකතුවෙන් පළමු sub key ඒක හැදෙනවා. C2 D2 දෙන්නාගෙ උදව්වෙන් දෙවන subkey ඒක හැදෙනවා. මේ විදියට Cn Dn දෙන්නාගෙ ඒකතුවෙන් n වන subkey ඒක හැදෙනවා. මේ විදියට පියවර 16ටම key 16ක් ලියවෙනවා. අන්තිමට මේ හැදෙන 56 bit key ඒකෙන් 8bits omit වෙලා තමයි 48 bit sub key ඒක අාවෙ.
  10. අපි දැන් අායෙත් බලමු algorithm දිහාවට. algorithm ඒක අපි නැවැත්තුවෙ 64 bit cleartext ඒකක් විදිහට. මේක කොටස් 2කට කඩාගෙන මේවා L0 R0 කියලා කොටස් 2ක් බෙදාගන්නවා. 
  11. රූපෙ බැලුවොත් තේරෙනවා මීලගට කරන්න තියෙන්නෙ L0 → L1 කරන ඒක හා R0 → R1 කරන දේ.මේකෙදි පාවිච්චි වෙන්නෙ පහත සමීකරණ 2.                                                                                Ln= R n-1          /      Rn = L n-1  (+) f(R n-1, Kn)  
  12.  මේ විදියට මුලු සමීකරණයේ විදියටම පියවර 16ක් යනතුරුම මේක ගමන් කරනවා. 
  13. අන්තිමට පිළිතුරු 2 විදිහට ලැබෙන L16 හා R16 අරගෙන අපේ පිළිතුර විදියට මේ 2ම මාරු කරලා ලියා ගන්නවා. 
  14. අවසානයට cyphertext ඒක විදිහට R16L16 අපි ලියාගන්නවා.
මේක තමයි DES algorithm කියලා අපි සරලවම කියන්නේ.
DES තව දිගට කථා වෙනවා. ඉතුරු විස්තර ඊලග ලිපියෙන් දාන්නම් යාලුවනේ. මේකෙ අඩුපාඩු තියෙනවානම් පහළින් කොමන්ටුවක් දාගෙන යන්න. සුභ දවසක් හැමෝටම :)

කවුද මේ සුන්දර් පිචායි ??

පිචායි සුන්දර්රාජන් ඔබ දන්නවාද? මං දන්න තරමින් නැහැ. නමුත් ඔබ සුන්දර් පිචායි හදුනනවා විය යුතුයි. ඔහු තමයි Google අායතනයේ ප්‍රධාන විධායක...