Wednesday, November 4, 2020

Cryptography

 Cryptography ගැන දැනගමු.

==============================
අපි අද ටිකක් වෙනස් මාතෘකාවක් තමයි කතා කරන්න යන්නෙ. ගොඩක් වෙලාවට අලුත් තාක්ෂණික උපාංග ගැන හදුන්වාදෙනවා වගේම මෙවැනි ලිපි ඔස්සේ ඔබේ පරිගණක දැනුම පුළුල් කරදීමටත් අපි නිරන්තරයෙන් උත්සාහගන්නවා. අපි දන්න දෙයක් අනික් කෙනෙකුට කියා දිය යුතුම බව අපි තරයේම විශ්වාස කරන අතර එසේ නොවුනහොත් ලෝකය කිසි දිනෙක ඉදිරියට ගමන් නොකරනු අතර අපිට පසුව එන පරම්පරාව අනිවාර්යයෙන්ම අපිව පසුකර යන අතර එවන් පරම්පරාකට අත දීමට හැකිවීමත් අපි ලද භාග්යයක් කොට සලකමු. අපි අද කතා කරන්න යන මේ මාතෘකව Cyber Security සහ Network Security ගැන උනන්දුවක් දක්වන අය වගේම ඒ පැත්තට ආස කරන අයටනම් ගොඩක්ම වැදගත් වේවි. අනෙක් අයටත් මේක වැදගත් නොවෙයි කියන එක නෙමෙයි ඒකෙන් අදහස් කලේ හොදේ.
90 දශකයේ පමණ වන විට කාර්යාල සහ අනෙකුත් තැන්වල පරිගණක බොහෝ වෙලාවට තනි තනිව තමයි තිබ්බෙ ඒ කියන්නෙ Network කරල නෙමෙයි. නමුත් පසුකාලීනව කාර්යබහුලත්වය සහ ඉතාමත් පහසුවෙන් එක් ස්ථානයක සිට තවත් ස්ථානයකට දත්ත සම්ප්රේෂණය කරන්නව අවශ්ය වුනහම පරිගණක Network කරන්න පටන්ගත්ත. පසුකාලීනව දත්තවලට වැඩි ආරක්ෂවක් ලබාදීම සදහා ඒවා local storage වල තැන්පත් කිරීම වෙනුවට cloud storage භාවිතා කරන්න පටන්ගත්තා. එතැනින් නොනැවතුන මිනිසා තම ආයතනයේ ඇති පරිගණක පද්ධති නිවසේ සිට පමණක් නොව ලෝකයේ ඕනෑම තැනක සිට භාවිතා කලහැකිවන පරිදි web based system බවට පරිවර්තන කරනලදී. එවිට සෑම අවස්ථාවකදීම එක් පරිගණක සිට server එකක් දක්වා දත්ත සම්ප්රේෂණය වන සංකල්පය හෙවත් client server architecture කියන ක්රමවේදය වඩාත් ඉස්මතු වෙන්න පටන්ගත්තා. මෙහිදී දත්ත එක් පරිගණකයක සිට server එක දක්වා ගමන් කරන්නේ INTERNET එක කියන Public networok එක ඔස්සේ තමයි. මෙවිට සියලුම දත්ත සාමාන්ය plain text විදිහට තමයි සම්ප්රේෂණය වුනේ. පරිගණක තාක්ෂණය වැරදි විදිහට භාවිතා කරල මුදල් හොයන hackers ල එන්න එන්නම වැඩිවුනාට පස්සෙ මේ data මේ විදිහට plain text විදිහට ගමන් කරන එක කිසිම security එකක් නෑ කියල තේරුම් ගන්නවා. ඒ නිසා මේ සාමාන්ය plain text එකක් sender සහ reciver හැර වෙනත් බාහිර පුද්ගලයකුට තේරුම්ගත් නොහැකිවන ආකරයට පරිවර්තනය කිරීම cryptography හෙවත් ගුප්තලේඛණකරණය වශයෙන් හදුන්වනු ලබයි.


මේකට ගොඩාක් පදනම් වුනේ පැරණි ඊජිප්තුවේ භාවිතාකරනලද සංකල්පයක්ද නැත්නම් අපේ පැරණි ප්රේම සම්බන්ධතාවයන් ඔස්සේද කියල වෙලාවකට මට හිතාගන්න බෑ. ඇයි මං එහෙම කියන්නෙ ඉස්සර අපි ගෑණු ලමයෙකුට ආදරේ කරනකාලෙ දැන් 2000 න් පස්සෙ ඉපදුන අයට වගේ whatsapp, viber, imo, messenger එහෙම තිබ්බෙ නෑ. ඒ නිසා හිතේ තිබ්බ සේරම අදහස් ටික ලියුමක ලියල පවුඩර් සෙන්ට් රටේ නැති ඒව ඉහල හතරට නමල එයාගෙ යාලුවෙකුගෙන් මාර්ගයෙන් novel එකක් ඇතුලට දාල දීල තමයි එකිනෙකා අතර සන්නිවේදනය කරගත්තෙ. ඒක හරිම සුන්දර අත්දැකීමක් වන්නේ පිලිතුර එන්න කාලයක් යන හින්ද හැබැයි සුන්දරත්වය පස්සෙ දොරෙන් පලායන්නෙ ඒකිගෙ අම්මා පොල්ලක් අරන් කොල්ලගෙ ගෙවල් පැත්තෙ ප්රශ්නෙ විසදන්න එනකොට තමයි. ඒ කියන්නෙ කාමරේ අස් කරන්න ගියවෙලේ අර ලියුම අම්මට අහුවෙලා. පසු කාලීනව සුවහසක් ලාංකීය පෙමවතුන් මේ සදහා කදිම සංකල්පයක් භාවිතා කරනවා ඒක තමයි ලාංකීය ප්රේමවෘතාන්තවල cryptography වල උපත සිදුවන්නෙ. මුලින්ම ලියුම් ලියද්දි ඕන වෙන වචන සියල්ලටම කෙනෙකුට තේරුම් ගන්න බැරි සලකුණු වල ලිස්ට් එකක් කෙල්ලට දෙනවා කට පාඩම් කරල තියාගන්න කියලා. පස්සෙ ලියුම ලියනකොට සාමාන්ය අකුරු වෙනුවට භාවිතා කරන්නෙ අර දීල තියෙන සලකුණු තමයි. දැන් මේ ලියුම අම්මට අහුවුනත් මෙලෝ දෙයක් තේරෙන්නෙ නෑ ඒ නිසා මොකක් හරි ගණං පාඩමක කොලයක් හරි නැත්නම් මේකිට පිස්සු කියල ඒක ඔහේ තියෙන්න අරිනවා. මේක කියවන්න පුලුවන් අර ගෑණු ලමයටම විතරයි. ඒ වගේම ඒකට එන පිලිතුරු ලියුම කියවන්නත් පුලුවන් ඒ කොල්ලට විතරයි.
එතකොට මේ ලියුම අරන් එන කෙල්ලගෙ යාලුව ඒ කියන්නෙ Internet එකේ නම් router එකක් විදිහට ගන්න පුලුවන් ඒ වගේම ලියුම අනවසරයෙන් කියවන අම්මා Internet එකේ නම් hacker ඒ අයගේ කිසිදු බලපෑමකට මේක ලක්වෙන්න තියෙන සම්භාවිතාවය හරිම අඩුයි. ඉතින් ඇත්තටම cryptography වලත් වෙන්නෙ ඕකම තමයි. හැබැයි මේක විශාල ප්රදේශයකට පැතිර යන පුළුල් විෂය පැතිකඩක් කියල මතක තියාගන්න. ඒ අනුව cryptography සෑම විටම භාවිතාකරනු ලබන්නේ වඩාත් ආරක්ෂිතව එක් විශේෂිත පාර්ශවයන් දෙකක් අතර දත්ත සම්ප්රේෂණය කිරීමට සහ ගබඩාකරතබාගැනීමට වෙයි. ඉස්සර cryptography සීමාවුනේ කලින් මම් පැහැදිලි කලා වගේ ගුප්තකේතනයට ඒ කියන්නෙ තේරුම්ගත් නොහැකිවන ආකරයට පරිවර්තනය කිරීමකට. නමුත් වර්තමානයේ දී එය න්යාත්මක ගණිතමය සහ ප්රායෝගික පරිගණක විද්යාවට බොහෝ දුරට සම්බන්ධ කිරීමක් කර තිබෙනවා.
ඉතින් මේ cryptography නිසා වර්තමානයේ බොහෝ ප්රතිලාභයන් පරිගණක භාවිතාකරන්නන්හට ලැබී තිබෙනවා.
*මේ ක්රමවේදය භාවිතා කරමින් දත්ත සම්ප්රේෂණය කරනු ලබන විටකදී reciver සහ sender හැරුණු කොට වෙනත් පාර්ශවයකට කිසිම ආකරයකින් දත්ත කියවීමකට නොහැකිවීම
*එසේ යම් ආකරයකින් සම්ප්රේෂණය වනු ලබන දත්ත තුන්වන පාර්ශවයක් අතට පත්වුවද නැවත් කිසිම විටකත් cryptography කරනලද ඒවා නම් වෙනස්කළ නොහැකිවීම
*අදාල දත්ත හෝ සම්ප්රේෂණය වූ පසු sender හෝ receiver විසින් එය ප්රවේශ කරගැනීමේදී එය අදාළ පුද්ගලයා බව තහවුරු කිරීමක් සිදුකළ යුතු අතර එය නියමාකාරයෙන් තහවරු කිරීමෙන් පසුව පමණක් දත්ත ප්රවේශ කරගැනීමට ඉඩ ලබාදීම.



වර්තමානයේ cryptography කියන ක්රමවේදය ඉතාමත් සංවේදී දත්ත සම්ප්රේෂණය කරනු ලබන අවසතා වලදී අනිවාර්යයෙන්ම භාවිතා කරනු ලබනවා. විශේෂයෙන්ම e-commerce ගණුදෙනුවලදී, අන්තර්ජාලය ඔස්සේ සිදුකරනු ලබන banking credit card හෝ debit card
ගණුදෙනුවලදී අනිවාර්යයෙන්ම මෙය භාවිතා කරනු ලබනවා. වර්තමානයේ මේ වන විට cryptography ප්රධාන ක්රමවේද තුනක් ඔස්සේ භාවිතා කරනු ලබනවා.
1. Symmetric-key cryptography
2. Hash functions.
3. Public-key cryptography
ඉහතින් සදහන් කරල තියෙන්නෙ ඒ ප්රධාන ක්රම තුන තමයි.
Symmetric-key cryptography
========================
Cryptography හරහා දත්ත සම්ප්රේෂණය වන විටදී කෙනෙකුට එක් වරම තේරුම් ගත් නොහැකි ආකරයට පරිවර්තනය කරල තමයි සම්ප්රේෂණය කරන්නෙ ඉතින් මේකට අපි encryption කරනව කියල කියනවා. මේ ක්රමයේදී දත්ත encrypted කලපසු නැවත් ඒවා සාමාන්ය plain text එකක් බවට පරිවර්තනය කරගැනීම සදහා එක් public key එකක් පමණක් භාවිතා කරනු ලබනවා. ඒනම් sender දත්ත encrypted කිරීමටත් නැවත් receiver විසින් decrypt කිරීමටත් එකම public key එකක් පමණක් භාවිතා කරනු ලබනවා.
Public-key cryptography
=====================
මේ ක්රමවේදය තමයි ගොඩක්ම වෙලාවට ජනප්රියම සහ වැඩි ඇප්ලිකේෂන් ප්රමාණයක් භාවිතාකරනු ලබන්නේ මෙහිදී encryption ක්රියාවලියේදී public key සහ private key ලෙස key දෙකක් භාවිතා කරනු ලබනවා. Public key එක අදාල දත්ත සම්ප්රේෂණය කිරීමේදී පොදුවේ යවනු ලබන අතර ඒ අතරතුරදී sender සහ reeciver අතර ඉතාමත් රහසිගතව private key එක share කරගනු ලබනවා. දත්ත encryption කිරීමට මෙම public key එක භාවිතා කරන නමුත් දත්ත සාමාන්ය plain text එකක් බවට හැරවීම සදහා මෙම private key එක පමණක් භාවිතා කරනු ලබනවා.






Hash functions.
===============



මෙම encryption algorithm ක්රියාවලියේදී කිසිම විටකත් key එකක් භාවිතා කරනු ලබන්නේ නැහැ. මෙහිදී නිශ්චිත දිගකින් යුත් hash value එකක් plain text එක ඇතුලට ඔබල තමයි plain text ඒක reciver වෙත යවන්නෙ.මෙම යවනු ලබන hash එකෙහි length භාවිතා කරනු ලබන hashing methid එක අනුව එකිනෙකට වෙනස්වනු ලබනවා. Operating system දත්ත encryption කිරීමේදී වැඩි වශයෙන් භාවිතස් කරනු ලබන්නේ මෙම ක්රමවේදය වෙයි. MD5, SHA-2 සහ CRC32 කියල කියන්නෙ ප්රසිද්ධ ම hashing methods තමයි. PHP, ASP.NET වලින් Web developing කරන අය නම් වැඩිපුරම username සහ password ඩේටාබේස් එකේ ගබඩාකරද්දි password එක encryption කිරීමට වැඩිපුරම භාවිතා කරන්නෙ MD5 කියන hashing method එක. ගොඩාක් languages මේ method එකෙන් application ලියන්න ගොඩාක් support කරනවා.
cryptography සම්බන්ධයෙන් ඔබේ සිතේ තිබූ ගැටලු ප්රශ්න වලට පිළිතුරක් ලැබෙන්න ඇතැයි කියල අපි විශ්වාස කරනු ලබනවා. Covid-19 වයිරස ව්යාප්තිය අවසානවාකට වගේ නැවතත් ලංකාව තුල හිස එස වීමට පටන්ගෙන තිබෙනවා. ඒ නිසා පරිස්සමෙන් මේ හිටිය වගේ ඉතිරි කාලයත් සෞඛ්ය පුරුදු අනුගමනය කරමින් ජීවත් වන්න. මොකද ඔබේ ආදරණියන්ට ඔබ ගොඩාක් වටින නිසා.

1 comment:

  1. You actually make it seem so easy with your presentation but I find this topic to be really something which I think I would never understand. It seems too complicated and extremely broad for me. I’m looking forward to your next post, I will try to get the hang of it!
    skip bin hire brisbane
    skip bin hire darra

    ReplyDelete

මොනවද මේ NFT කියන්නේ..

  NFT යනු දිලීර නොවන ටෝකන යන්නයි. නමුත් එය වඩා හොඳින් තේරුම් ගැනීමට, අපි පියවරෙන් පියවර කිමිදෙමු... 🏊🏊 NFT තේරුම් ගැනීමට, ඔබ blockchains ත...