Tuesday, July 31, 2018

Encryption ගැන සරලව සිංහලෙන් - 2 Symmetric Encryption Method



එහෙනම්, ඔන්න පොරොන්දු වූ පරිදි Encryption ගැන දෙවැනි පෝස්ට් එක. මේකෙ පළමුවෙනි කොටස හිතුවට වඩා කට්ටියක් කියවලා තිබුණා, මොහොම සන්තෝසයි. ඒක කියවන්නැතුව නම් මේක බලන්න එපා තනිකර නිකන් ග්‍රීක් වගේ තියෙයි, කියෙව්වෙ නැත්නම් මෙන්න ලිංක් එක, ගිහින් ඒක කියවලා ආපහු එනු මැන.

අපි පහුගිය ලිපියෙදි කථා කරපු ආකාරයට, Encryption ගැන කතා කරනකොට අපිට මුණගැහෙන ප්‍රධාන terms වෙන Hashing, Symmetric Method සහ Asymmetric Method කියන කාරණා තුන ආවරණය කරගෙන යන මේ ගමනේ, පලමු පියවර විදියට අපි Hashing ඉවර කළා. ඊළඟට අපිට තියෙන්නේ Symmetric සහ Asymmetric කියන Encryption ක්‍රම දෙකෙන් වඩා සරල එක වෙන Symmetric ක්‍රමය ගැන කථා කරන්නයි. එහෙනම්, අපි අද ඒ ගැන කතා කරමු.

ඒ වගේම කියන්න ඕන, අපි මේ Encryption ගැන කතා කරගෙන එන ලිපි පෙළ කියවපු කෙනෙක්ට දැන් මම හාවිතා කරන තාක්ෂණික පද ගැන අවබෝධයක් තියෙනවා. ඒ නිසා මට වැඩේ ලේසියි, අනික සතුටුයි, ඔයාලා දැන් කලින්ට වඩා යමක් මම නිසා ඉගෙනගෙන තිබීම ගැන. හරි එහෙනම් අපි පාඩමට යමු.

***

Symmetric Encryption Method 


මේ කතාව සරලයි, මම එදා කලින් දවසක ඔයාලට Encryption ගැන ටිකක් කියලා දෙන්න ඕන වෙලා අර VPN පෝස්ට් එකේ ගත්ත උදාහරණය, අන්න ඒක Symmetric Encryption වලට උදාහරණයක්.  

මම ඒක මෙතනට අරන් එන්නම් කොපි කරලා, එතකොට මේක ලේසියි.
ඔයයි ඔයාගෙ කෙල්ලටයි ඕන අම්මගෙ ෆෝන් එකෙන් මැසේජ් කරන්න. හැබැයි අම්මා ඔය මැසේජ් කියෙව්වොත් ලෝක තොප්පියයි. ඉතින් ඔයා මොකක්ද කරන්නේ? ඔයයි ඔයාගෙ කෙල්ලයි කතා වෙනවා මෙන්න මෙහෙම හොර වැඩක් කරන්න. ඔයාලා දෙන්නා යවන මැසේජ් වලට පොඩි වෙනසක් කරන්න. ඔයාලා A අකුර වෙනුවට ගහන්නෙ B අකුර. B වෙනුවට ගහන්නෙ C අකුර, C වෙනුවට ගහ්න්නෙ D අකුර. හැම අකුරක් වෙනුවටම ඊට පස්සෙ තියෙන අකුර ගන්නවා. ඔන්න උදාහරණයක්.

Baba mama gedara awa. (Normal message)
Cbcb nbnb hfebsb bxb. (Encrypted message)

දැන් තේරෙනවද Encryption කියන වැඩේ බරපතළකම? එක අකුරක් එහෙ මෙහෙ කරාම එන ප්‍රතිඵලය තනිකර අණ්ඩර දෙමළයක් නෙ.

මෙහෙමයි දැන් ඕක, කොල්ලා කෙල්ලට මැසේජ් එක යවනවා කියලා හිතමු. කොල්ලා කරන්නෙ මැසේජ් එක Encrypt කරලා ඒක කෙල්ලට යවනවා. කෙල්ල දන්නවා Encrypted message එක කියවන විදිය. එයා ඒක Decrypt කරලා, ඒ කිව්වෙ තේරෙන විදියට හරවලා කියවනවා.  අම්මා ඕක කියෙව්වා කියලා වැඩක් තියෙනවද? අම්මට පේන්නෙ කිසි තේරුමක් නැති ඉංග්‍රීසි අකුරු ගොඩක් විතරයි.
ඔන්න ඕකටයි සරලවම අපි Symmetric Encryption Method එක නැත්නම් "සමමිතික ගුප්ත කේතන ක්‍රමය" කියලා කියන්නෙ. මේ සිංහල වචනෙ හොයා ගත්තෙ හරි අමාරුවෙන්. වචනෙ මොකක් වුණත්, මේ අන්න ඒක තමා.

මේ ක්‍රම වේදයේදී භාවිතා වෙන්නේ එකම එක key එකයි, අපේ උදාහරණයේ නම් ඒ key එක වෙන්නෙ එක අකුරක් ඉදිරියට යෑම. අන්න ඒකයි මේ Encrypted අකුරු ගොඩ එහෙමත් නැත්නම් Cipher text එක Decrypt කරගැනීමේ යතුර. මේ උදාහරණයේදී කොල්ලා කරන්නේ ඒ යතුර යොදාගෙන එයාගෙ Plain text එක Encrypt කරලා ඒක Cipher text එකාක් බවට පත් කරලා, ඒ Cipher Text එක කෙල්ලට යවලා, ඒක Decrypt කරලා කියවගන්න එයාගෙ යතුරත් කෙල්ලට පාස් කරන එක. හරි අපි මේක රූප සටහනකින් බලමු.


දැක්කනෙ, ඔතන Encryption එකටයි, Decryption එකටයි දෙකටම භාවිතා කළේ එකම යතුර. අන්න ඒකයි ඒ යතුර මම එකම පාටට, එකම හැඩේට දැම්මෙ. දැන් ඔය කාරිය අපි සරලව ඔහොම පැහැදිලි කරගත්තට, computer එකක හෝ මොනයම් හෝ උපාංගයක ඇත්තටම ඕක වෙනකොට ඒක සංකීර්ණ වැඩක් ඒ ඇයි කියලා මම පැහැදිලි කරන්නම්.

සැබෑ ක්‍රියාකාරීත්වය

ඇත්තටම මේවා පරිගණක වල භාවිතා වෙනකොට මේ Key එක මීට වඩා සෑහෙන්න ප්‍රභලයි. අපි කළේ හැම අකුරක්ම එකකින් ඉස්සරහට අරන් ගිය එකනෙ. ඒත් ඇත්තටම මේක වෙන්නෙ බොහොම සංකීර්ණ විදියකට. එහෙම හදාගන්න සංකීර්ණ ගණිතමය සූත්‍රයකට හෝ ක්‍රියා පිළිවෙලවල් ටිකකට අපි කියනවා ඇල්ගොරිතමයක් (Algorithm) කියලා.

ලෝකයේ පළමු වරට නිසි ආකාරව අර්ථදැක්වුණු සමමිතික ඇල්ගොරිතමය (Symmetric Algorithm) නිර්මාණය වුණේ ඇමරිකාවෙ. ඒක හැඳින්වුණේ DES කියන කෙටි නමින්. ඒකෙ දිග තේරුම තමයි Data Encryption Standard කියන එක (හරි ලේසියි නෙ :P ) මේ ක්‍රමය 1970 ගණන් වල භාවිතාවට නිර්දේශ වුණා.

මේ DES කියන ක්‍රමයෙදි භාවිතා වුණේ 56-bit key එකක්. 56-bit කියන්නෙ මොන වගේ එකක්ද කියලා දන්නෙ නැත්නම් ගිහින් බලන්න මම ලිව්ව මෙන්න මේ පෝස්ට් එක, ඒකෙ ඔය බිට් සීන් එක ගැන ඕනවටත් වඩා විස්තර කරලා තියෙනවා.

ඔයා දන්නවනම් මේ බිට් කතාව මොකක්ද කියලා, ඔයා දන්නවානෙ 56-bit කියන්නෙ 256 කියලා. ඒ කියන්නෙ 72,057,594,037,927,936 බව ඔයාට කැල් එකක් අරන් හදාගන්න පුළුවන්. ඒකෙ තේරුම තමයි, ඒ DES key එකකට අන්න ඒ තරම් possibilities තියෙනවා කියන එක. ඔයා හැකර් කෙනෙක් වෙලා ඔයාට කාගෙ හරි Encrypted Message එකක් හොරෙන් කියවන්න ඕන නම්, ඔයාට වෙනවා 72,057,594,037,927,936 වතාවක් විතර එක එක කෝඩ් ගහ ගහ බලන්න, හරි key එක ලැබෙනකන්. ඇත්තටම එහෙම ගහ ගහ බලන්න අවශ්‍ය නෑ ඒවට Software තියෙනවා, Software එකකට වුණත් අර වගේ key එකක් හොයාගන්න සෑහෙන කාලයක් යනවා. අපි මේ කතා කරන්නේ 1970 ගනන් ගැන නිසා ඇත්තටම ඒක මහම මහ විශාල කාලයක්. මොකද ඒ කාලෙ කම්පියුටර් ගොඩක් මන්දගාමි නිසා.

1970 ගණන් වලින් පස්සේ පරිගණක තාක්ෂණයේ සිදු වුණ විශාල දියුණුවත් එක්ක පරිගණක ඉතාමත් වේගවත් වුණා. කොච්චර වේගවත් වුණාද කිව්වොත් 56-bit කේතයකුත් සැලකිය යුතු තරම් අඩු කාලයකින් ක්‍රැක් කරගන්න පුළුවන් වුණා. (Possibilities හොය හොය ගිහින් වුණත්) එහෙම වුණාම ඉතින් ආයෙ හිතන්න දෙයක් නෑ නෙ. එතන Security Breach එකක්.

ඉතින් අන්න ඒ දුර්වල කම නිසා පසු කලෙක ආවා AES නැත්නම් Advanced Encryption Standard කියන ක්‍රමවේදය. ඒකෙදි භාවිතා වුණේ 128-bit, 192-bit, 256-bit වගේ බොහොම විශාල සයිස් එකේ Encryption Keys. මේකෙ කොච්චර Possibilities තියේද කියලා ඔයාලම ගණන් හදලා බලාගන්න. මම නම් හදන්න යන්නෑ. අරකට වඩා මේක සෑහෙන්න ආරක්ෂිත බව නම් ඔයාට බලාගන්න පුළුවන් වේවි. 

හැබැයි, ඔයාලා දැනගන්න ඕන දෙයක් තමයි මේ තොරතුරු තාක්ෂණය, එහෙමත් නැත්නම් පරිගණක තාක්ෂණය කියන්නෙ සෑහෙන්න වේගෙන් දියුණු වීගෙන යන විෂයයක්. ඉතින් කාලෙකට පස්සෙ මේ Symmetric Method එකෙත් ආරක්ෂාව දුර්වල බව කට්ටියට තේරුණා. ඉතින් ඒ දුර්වල කම මැඩලන්න තමයි Asymmetric Method එක ආවේ. 

***

අපේ Encryption ගැන පාඩම් මාලාවේ අපි ඊළඟට කතා වෙන්නේ, මේ වඩා හොඳ සහ වඩා සංකීර්ණ Asymmetric Encryption Method එක ගැන. හොඳයි, එහෙනම්. අදට මෙපමණයි. ඊළඟ පෝස්ට් එකෙන් මුණ ගැහෙමු. ඔබට ජය!

Share:

0 comments:

Post a Comment

Search This Blog

Follow by Email

Blog Archive