හුඩී එකක් ඇඳගත්ත කෙනෙක්, තිර කිහිපයක් තියෙන පරිගණකයක් ඉස්සරහා වාඩි වෙලා ඉන්නවා කියලා හිතන්න. ඒ තිරවල කළු පසුබිමක් උඩ කොළ පාට අකුරු ගොඩක් තියෙනවා, සමහරවිට ප්‍රතිශතයක් පෙන්නන ප්‍රගති තීරු කිහිපයකුත් ඇති. මේ තමයි චිත්‍රපටවල එන සාමාන්‍ය හැකර්, පරිගණක ප්‍රතිභාවන්තයෙක්. එයාගේ ඉලක්කය සතුරු ඔත්තුකාරයෙක් වුණත්, ආණ්ඩුව වුණත් වෙනසක් නැහැ; එයාගේ අත්දැකීමයි හරි යතුරු පෙළයි තියෙනකොට, ඉක්මනින් හරි පරක්කු වෙලා හරි එයා විරුද්ධවාදියාගේ පරිගණකයට ඇතුළු වෙලා ඒකට හානි කරනවා. ඒත් මේක කොච්චර ඇත්තද? කාට හරි මොනවා හරි හැක් කරන්න පුළුවන් තැනක් ඇත්තටම හැමදාම තියෙනවද?

ගෙදරක ලී දොරක් ගැන හිතුවොත්, ඒකෙන් ගොඩක් අයට ඇතුළට එන්න බැරි වෙනවා කියලා අපි දන්නවා; ඒත් කෙනෙකුට කම්බි කෑල්ලකින් අගුළ අරින්න පුළුවන්, නැත්නම් වඩා මංමුලා වෙච්ච කෙනෙකුට පොරවකින් හරි ලොකු ලී කඳකින් හරි දොර කඩාගෙන බලෙන් ඇතුළට එන්න පුළුවන්. ඒ වෙනුවට යකඩ දොරක් දැම්මොත්, සමහරවිට වෑල්ඩින් ටෝච් එකකින්, ග්‍රයින්ඩර් එකකින් හරි මොකක් හරි පුපුරණ ද්‍රව්‍යයකින් හරි ඔයාට ඒක කඩන්න පුළුවන් වෙයි. ඔයා දොරේ ආරක්ෂාව වැඩි කරන හැම වෙලාවකම, ඒක පරාජය කරන්න ඊට වඩා බලවත් ප්‍රහාර ක්‍රමයක් හොයාගන්න පුළුවන් වෙයි. සයිබර් ආරක්ෂාවෙත් ඇත්තටම මෙහෙම වෙනවද? ඇල්ගොරිතම කොච්චර දියුණු වුණත්, ඒවා පරාජය කරන්න හැමදාම මොකක් හරි ක්‍රමයක් තියෙනවද?

ඩිජිටල් ලෝකයේ අපිට බිට් වඩා තද කරන්නවත්, කඩන්න වඩා හයියෙන් යතුරු ගහන්න ඕනෑ වෙන වැඩසටහන් හදන්නවත් බැහැ; අපිට ආරක්ෂා වෙන්න තියෙන්නේ ගණිතය, අද තියෙන බලවත්ම පරිගණකවලටවත් විසඳන්න බැරි තරම් අමාරු ගණිත ගැටලු.

ඉතිහාසය පුරාම ඇල්ගොරිතම වෙනස් වෙලා තියෙනවා. මුල්ම පරිගණක කොච්චර හෙමින්ද කියනවා නම්, සැහැල්ලු ඇල්ගොරිතමයක් නැතුව සාමාන්‍ය වැඩවලටවත් ඒවා පාවිච්චි කරන්න බැරි වුණා. කාලයත් එක්ක ඒ ඇල්ගොරිතම එකින් එක බිඳුණා. සමහර ඒවා බිඳුණේ පරිගණක ඒවා ඉක්මනින් බිඳින්න පුළුවන් තරම් බලවත් වුණු නිසා විතරයි; තවත් ඒවා බිඳුණේ ඒවායේ දුර්වලකම් හොයාගත්ත නිසා, ඒ කියන්නේ ඇල්ගොරිතමය මඟහැරලා යන්න පුළුවන් ගණිතමය කෙටි මං.

ඒත් අද, අපි දන්න තරමින්, දැන් තියෙන පරිගණකවලටවත්, ක්වොන්ටම් පරිගණක ඇතුළු අනාගතයේ එන පරිගණකවලටවත් බිඳින්න බැරි ඇල්ගොරිතම අපිට තියෙනවා. ගණිතය කොච්චර ශක්තිමත් වෙලාද කියනවා නම්, දැන් ප්‍රහාරකයාට වාසි ඇල්ගොරිතම බිඳින්න ක්‍රම හොයනවාට වඩා, ඒවා මඟහැරලා යන්න ක්‍රම හොයන එක. ප්‍රායෝගිකව බිඳින්න බැරි තරම් ඇල්ගොරිතම අපිට තියෙනවා. ඒ නිසා ලොකුම දුර්වලකම වෙලා තියෙන්නේ මිනිස් වැරදි; දොර අගුළු නොදා තියන එක, නැත්නම් දොරක් තියෙන්න ඕනෑ තැන සිදුරක් ඉතිරි කරන එක වගේ.

මම උසස් පාසලේ ඉගෙනගත්තේ cyberවල[1] හොඳම කාලයේ. ඒ දවස්වල ගොඩක් අයගේ ගිණුම් හැක් වුණා. ඒක අන්තර්ජාලයටම ආවේණික දුර්වලකමක් කියලා බොහෝ දෙනා හිතුවා. ඇති තරම් දැනුමත් සම්පතුත් තිබුණොත් ඕනෑම ගිණුමක් සොරකම් කරන්න ක්‍රමයක් තියෙන්න ඕනෑ කියලා.

මට නම් පැහැදිලි කිරීම් තුනක් තිබුණා:

  1. එයාලා cyber එකේ පරිගණකයේ “මගේ මුරපදය මතක තබාගන්න” තෝරලා තිබුණා. ඊළඟට ඒ පරිගණකය පාවිච්චි කරපු කෙනා කිසිම කරදරයක් නැතුව ඇතුළු වුණා.

  2. මුරපදය එච්චර සරලයි, දන්න කෙනෙක් ඒක අනුමාන කළා. උපන් දිනය හරි තමන්ගේ බල්ලාගේ නම හරි යොදලා තිබුණා.

  3. ඒ පරිගණකයේ keylogger එකක් තිබුණා. ඒ කියන්නේ එබූ හැම යතුරක්ම සටහන් කරන යෙදුමක්. ඔයා හිතනවාට වඩා මේක නිතර වුණා.

මේ තුනෙන් පළවෙනි එකට තමයි වැඩි ඉඩක් තිබුණේ. ඒත් තුනේම දුර්වල තැන වුණේ ඒ කෙනා හෝ ඒ කෙනා භාවිත කළ පරිගණකයයි. සර්වරය ඒ ගැන දැනගත්තෙවත් නැහැ. හොඳට නිර්මාණය කරපු සේවාවක නම්, කවුරුහරි සර්වරයට ඇතුළු වුණත් මුරපදය එතැන තිබිය යුතුවත් තිබුණේ නැහැ.

එක දිශාවකට යන ඇල්ගොරිතම

ඔයා හොඳට හදපු වෙබ් අඩවියක ගිණුමක් හදනකොට, ඒ අඩවිය ඔයාගේ මුරපදය ගබඩා කරන්නේ නැහැ. ඒකෙන් හැෂ් ශ්‍රිතයක් භාවිතයෙන් ගණනය කරපු සංඛ්‍යාවක් ගබඩා කරනවා.

අපි ඉතා සරල එකක් හදාගමු. සෑම අකුරකටම ඉංග්‍රීසි අකුරු පෙළේ එහි ස්ථානය දෙමු: a = 1, b = 2, c = 3, එහෙම ගිහින් z = 26. වචනයක හැෂ් අගය වෙන්නේ එහි අකුරුවල එකතුවයි. ගණන් වෙනස් නොවෙන්න මේ උදාහරණවල ස්පාඤ්ඤ වචන එහෙමම තබමු.

hola → 8 + 15 + 12 + 1 = 36

hola කියන්නේ “ආයුබෝවන්” වගේ ආචාරයක්. එක අකුරක් වෙනස් කරලා hora කළාම 42 ලැබෙනවා. බැලූ බැල්මට රටාවක් නොපෙනෙන වෙනස් සංඛ්‍යාවක්. ඒත් රටාවක් තියෙනවා.

දැන් වැදගත්ම කොටස. මම “සංඛ්‍යාව 36” කියලා කිව්වොත්, මුල් වචනය මොකක්ද කියන්න ඔයාට පුළුවන්ද? ගණිතමය වශයෙන් බැහැ. එකතු කිරීමේදී තොරතුරු නැති වෙනවා. තිබුණේ මොන අකුරුද, ඒවා තිබුණේ මොන පිළිවෙළටද කියලා දැන් දන්නේ නැහැ.

මේ වගේ එක දිශාවකට යන ඇල්ගොරිතමවලට “හැෂ් ශ්‍රිත” කියනවා. සර්වර් ඒවා භාවිත කරලා මුරපද ගබඩා කරනවා, අඩුම ගානේ එහෙම කළ යුතුයි. කවුරුහරි දත්ත සමුදාය සොරකම් කළොත් 36 දකිනවා. ඒත් ඔයාගේ මුරපදය දන්නේ නැහැ. එයාට කරන්න වෙන්නේ වචන උත්සාහ කරමින්, 36 දෙන එකක් සොයාගැනීමයි.

අපේ සරල ශ්‍රිතයෙන් ඒක හරි පහසුයි. hola සහ vida වගේ සාමාන්‍ය වචන උත්සාහ කරන්න. දෙකෙන්ම 36 ලැබෙන නිසා, ඒ දෙකෙන් ඕනෑම එකකින් ගිණුමට ඇතුළු වෙන්න පුළුවන්. වෙනස් ආදාන දෙකක් එකම ප්‍රතිඵලය දුන්නාම ඒකට collision, නැත්නම් ඝට්ටනයක් කියනවා. මේ ඇල්ගොරිතමයේ ඒවා ගොඩක් තියෙනවා: amor, roma, ramo, mora සහ pez ඔක්කොම 47 දෙනවා. ඔයාගේ මුරපදය amor නම්, කෙනෙකුට pez යොදලා ඇතුළු වෙන්න පුළුවන්. දෙකේ ප්‍රතිඵලය එකයි.

ඒක වළක්වන්න SHA-256 වගේ ඇල්ගොරිතම භාවිත කරනවා. අදහස සමානයි, ඒත් බොහොම සංකීර්ණයි. සරල එකතුවක් වෙනුවට, ආදානයේ බිට් මෙහෙයුම් වට 64ක් හරහා මිශ්‍ර කරනවා. අවසානයේ බිට් 256ක සංඛ්‍යාවක් ලැබෙනවා. hola වචනයේ හැෂ් අගය මෙහෙමයි:

b221d9dbb083a7f33428d7c2a3c3198ae925614d70210e28716ccaa7cd4ddb79

පළමු අකුර ලොකු අකුරක් කරලා Hola යෙදුවොත් මෙහෙමයි:

e633f4fc79badea1dc5db970cf397c8248bac47cc3acf9915ba60b5d76b0e88f

එක අකුරක් වෙනස් කළාම පේන රටාවක් නැති, සම්පූර්ණයෙන් වෙනස් ප්‍රතිඵලයක් ලැබෙනවා. SHA-256 තුළ ඝට්ටන න්‍යායිකව තියෙනවා: හැකි වචන අනන්තයි, හැකි ප්‍රතිඵල සීමිතයි. ඒත් තවම කවුරුත් එකක් සොයාගෙන නැහැ. හැෂ් අගයක් අරගෙන, ඒ අගයම දෙන වචනයක් නිපදවන්න දන්න ක්‍රමයකුත් නැහැ. අද මුරපද සඳහා භාවිත කරන්නේ ඊටත් සංකීර්ණ Argon2 සහ bcrypt වගේ ඇල්ගොරිතම. ඒවා හිතාමතාම ගණනය කරන්න වැඩි කාලයක් ගන්නවා. අහඹු කොටස් එකතු කරලා, සියලු සංයෝජන උත්සාහ කරමින් අනුමාන කිරීම අමාරු කරනවා.

එහෙනම් මුරපදය ගබඩා කරලා නැත්නම්, ඔයා හරි මුරපදය ලිව්වා කියලා වෙබ් අඩවිය දන්නේ කොහොමද? ඔයා ටයිප් කරපු දේ හැෂ් කරලා, ගබඩා කරලා තියෙන අගයට සසඳනවා. දෙක ගැළපුණොත් ඒ ඔයායි.

වෙබ් අඩවියම ඔයාගේ මුරපදය තබාගන්නේ නැහැ. සේවකයෙක් දත්ත සමුදාය විවෘත කළොත් පෙනෙන්නේ සංඛ්‍යා. ඒක සොරකම් කළත් එහෙමයි. සමාගමේ අධ්‍යක්ෂවරයා හරි, නියෝගයක් අරගෙන එන ආණ්ඩුවක් හරි, ඔයාගේ මුරපදය ඉල්ලුවත් එයාලට දෙන්න ක්‍රමයක් නැහැ. දෙන්න අකමැති නිසා නෙවෙයි. මුරපදය කොහේවත් නැහැ, හැෂ් ප්‍රතිඵලය විතරයි තියෙන්නේ. හොඳට හදපු සේවාවක් කවදාවත් ඔයාගේ පරණ මුරපදය කියන්නේ නැහැ. අමතක වුණොත් අලුත් එකක් හදන්න වෙයි. මොකද පරණ එක මොකක්ද කියලා එයාලවත් දන්නේ නැහැ.

අවාසනාවට හැම සේවාවක්ම මේක කරන්නේ නැහැ. වතාවක් මම Telcel එකේ මුරපදය නැවත ලබාගැනීමේ ක්‍රියාවලිය භාවිත කළා. Telcel කියන්නේ මෙක්සිකෝවේ ජංගම දුරකථන සේවා සමාගමක්. එයාලා මගේ මුරපදය තිබුණු විදිහටම, සාමාන්‍ය පෙළෙන් මට එව්වා. බය හිතෙනම දේ? ඒ මීට අවුරුදු කිහිපයකට කලින්.

ඒත් හරි එක ලැබෙනකම් විවිධ සංයෝජන උත්සාහ කිරීම තවම වැඩ කරනවා. ඔයාගේ මුරපදය වැඩියෙන් සරල නම්, ප්‍රහාරකයෙක් ඒක ඉක්මනින් අනුමාන කරන්න පුළුවන්. මුරපදයේ දිග එච්චර වැදගත් වෙන්නේ ඒ නිසයි. ඒ ගැන වෙනත් ලිපියක කතා කරමු.

ඇතුළු වීම සහ ගුප්තකේතනය

කාටවත් ඔයාගේ මුරපදය ලබාගන්න බැරි වීම ලොකු ආරක්ෂාවක්. ඒත් මුරපදය කියන්නේ එක් පරීක්ෂාවක් විතරයි. කේතයේ වැරැද්දක් තිබුණොත් ඒ පරීක්ෂාව මඟහරින්න පුළුවන්. ගුප්තකේතනය වැදගත් වෙන්නේ මෙතැනදී.

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

ජූලියස් සීසර්ගේ කාලය තරම් පැරණි, තවත් සරල ඇල්ගොරිතමයක් බලමු. යතුර සංඛ්‍යාවක්. සෑම අකුරක්ම අකුරු පෙළේ ඒ තරම් ස්ථාන ගණනක් ඉදිරියට ගෙනයන එකයි ගුප්තකේතනය. යතුර 3 නම්, hola වචනය krod වෙනවා: h අකුර k වෙනවා, o අකුර r වෙනවා, l අකුර o වෙනවා, a අකුර d වෙනවා. ආපහු යන්න නම් අකුරු ඒ ස්ථාන 3ම පස්සට ගෙනයන්න. යතුර නැතුව krod කිසි දෙයක් වගේ පෙනෙන්නේ නැහැ.

ලොරල් කොළ ඔටුන්නක් සහ රතු සළුවක් දාගත්ත පූසෙක්, HW WX, EUXWH IRUFH DWWDFN කියන ගුප්තකේතනය කළ පණිවිඩය ලියපු පුවරුවක් දිහා බලාගෙන ඉන්නවා, පසුබිමේ හිරු බසින රෝමය.

ඒක ආරක්ෂිතද? කොහෙත්ම නැහැ. හැකි යතුරු තියෙන්නේ 25ක් විතරයි. krod දකින, යතුර නොදන්න කෙනෙක්ට ඔක්කොම උත්සාහ කරන්න පුළුවන්. කියවිය හැකි දෙයක් ලැබෙන්නේ එකකින් විතරයි: 1 යෙදුවොත් jqnc, 2 යෙදුවොත් ipmb, 3 යෙදුවොත් hola. කවදා හරි උත්සාහ කරමින් එයා යතුර සොයාගනී.

එහෙනම් අපි තව සංකීර්ණ කරමු. මුළු වචනයටම එකම සංඛ්‍යාව යොදනවා වෙනුවට, සෑම අකුරකටම වෙනස් එකක් යොදමු. උදාහරණයට 7, 2, 19 සහ 11. දැන් hola වචනය oqel වෙනවා. ප්‍රහාරකයා උත්සාහ කරන්නේ යතුරු 25ක් නෙවෙයි, 26^4ක්. සංයෝජන 457,000කට ආසන්නයි. කලින් එකට වඩා ආරක්ෂිතයි. ඒත් හඳුනාගන්න පුළුවන් රටාවක් හොයාගෙන, එතැනින් යතුර වඩා පහසුවෙන් ගණනය කරන්න පුළුවන්. පරිගණකයකට මේක විසඳන්න ගතවෙන්නේ ඉතා සුළු කාලයක්.

ආරක්ෂිත ගුප්තකේත ඇල්ගොරිතම කරන්නේ, උත්සාහ කරමින් යතුර අනුමාන කිරීම හරි අමාරු වෙන තරමට සංකීර්ණත්වය වැඩි කිරීමයි. AES අකුරු එහා මෙහා ගෙනයන්නේ නැහැ. එය බිට් 128ක කොටස් සමඟ වැඩ කරමින්, බිට් 256ක යතුරකින් මෙහෙයුම් වට 14ක් හරහා ඒවා මිශ්‍ර කරනවා. පහසුවෙන් ප්‍රයෝජනයට ගන්න පුළුවන් රටාවක් නොපෙනෙන තරම් සංකීර්ණයි. ඉතිරි වෙන්නේ යතුරෙන් යතුර උත්සාහ කිරීමයි. ඔයාගේ පණිවිඩ, ක්ලවුඩ් එකේ තියෙන ඡායාරූප, බැංකුවට ඇති සම්බන්ධතාව ආරක්ෂා කරන්නේ මේකයි. ඒ නිසා කෙනෙක් වැරදි දොරකින් ගිණුමකට ඇතුළු වුණත්, දත්ත හොඳින් ගුප්තකේතනය කරලා නම් සහ යතුර එයා ළඟ නැත්නම්, එයාට හමුවෙන්නේ අර්ථයක් නැති දත්ත විතරයි.

යතුරු කීයක් තියෙනවද? අපේ පළමු සෙල්ලම් ඇල්ගොරිතමයට 25යි. දෙවැනි එකට 26^4යි. AES-256 යතුරකට වෙනස් අගයන් 2^256ක් ගන්න පුළුවන්. සම්පූර්ණයෙන් ලිව්වොත් ඒක ඉලක්කම් 78ක සංඛ්‍යාවක්.

තත්පරයකට යතුරු 10^18ක් උත්සාහ කරන්න පුළුවන් පරිගණකයක් හිතන්න. ඒ කියන්නේ 1ට පස්සේ බින්දු 18ක්. ඒක දැනට තියෙන ඕනෑම සුපිරි පරිගණකයකට කළ හැකි ප්‍රමාණයටත් වඩා වැඩියි. යතුරු සියල්ලම උත්සාහ කරන්න අවුරුදු 3.7 × 10^51ක් විතර ගතවෙයි. විශ්වයේ වයස අවුරුදු බිලියන 13.8ක් විතරයි. ඒ නිසා විශ්වයේ මුළු වයසම 10^41 වතාවකටත් වඩා වැඩියෙන් බලාගෙන ඉන්න වෙයි.

අද තියෙන තාක්ෂණයෙන්, ලෝකයේ හැම පරිගණකයක්ම යොදාගත්තත් කාටවත් AES-256 ගුප්තකේතනය බිඳින්න බැහැ. චිත්‍රපටයක හැකර් කෙනෙක් මිනිත්තු කිහිපයක් ටයිප් කරලා සතුරු ඔත්තුකරුවෙකුගේ දියුණු ගුප්තකේතනය බිඳිනවා දැක්කොත්, දැන් ඔයා දන්නවා ඒක කොච්චර කල්පිතයක්ද කියලා. අගුලකට මැජික් යෂ්ටියක් දික් කරලා “Alohomora” කියමින් ඒක අරිනවා වගේමයි.

හැබැයි අනාගතය ගැන හැම දෙයක්ම සහතික නැහැ. ක්වොන්ටම් පරිගණකවලින් ඉතා විශේෂ ගැටලු කිහිපයක් වේගයෙන් විසඳන්න පුළුවන් වෙයි. දැනට තියෙන සමහර ඇල්ගොරිතමවල ගණිතමය සංකීර්ණත්වය එතැනදී ඉතා සරල වෙනවා.

ප්‍රසිද්ධියේ දන්න තරමට, ඒ සඳහා ප්‍රමාණවත් තරම් විශාල ක්වොන්ටම් පරිගණක තවම නැහැ. ඒත් ඒවා ලැබෙන දවසට පිළිතුරක් දැනටමත් තියෙනවා. 2024දී NIST, ක්වොන්ටම් පරිගණකවලට ඔරොත්තු දෙන්න නිර්මාණය කළ ගුප්තකේතන ප්‍රමිතිවල පළමු කට්ටලය ප්‍රකාශයට පත් කළා. සමහර බ්‍රවුසර සහ පණිවිඩ යෙදුම් දැනටමත් ඒවා භාවිත කරනවා. හැම තැනටම තවම පැමිණ නැහැ. ඒත් අපි නිකම් බලාගෙන ඉන්නේ නැහැ. ක්වොන්ටම් පරිගණකයක් වැඩ කරන්නේ කොහොමද, ඒකෙන් අපි ආරක්ෂා වෙන්නේ කොහොමද කියලා වෙනත් ලිපියක බලමු.

ඊළඟ ලිපියෙන් ඔයාගේ අතේ තියෙන දෙයක් ගැන කතා කරමු: ඔයාගේ මුරපද, සහ P@ssw0rd! වගේ සංකීර්ණ මුරපදයකට වඩා දිග වාක්‍යයක් ඔයාව ආරක්ෂා කරන්නේ ඇයි කියලා.

මූලාශ්‍ර


  1. මෙක්සිකෝවේ “cyber” කියන්නේ අන්තර්ජාලය ඇති පරිගණක පැයකට කුලියට දෙන තැනකට. සමහර විට ඒක අන්තර්ජාල කැෆේ එකක්; ඒත් බොහෝ විට පාරේ කෙළවරේ ලිපිද්‍රව්‍ය කඩයක පිටුපස තිබුණු පරිගණක කිහිපයක්. ↩︎