CRC-32 චෙක්සම්
චෙක්සම් එකකින් දත්තයක් සම්පූර්ණයෙන් ලැබුණාදැයි දැනගත හැක, එය මුල් පිටපත සමඟ සම්පූර්ණයෙන් සසඳා බැලීමකින් තොරව. යවන්නා කෙටි අංකයක් ගණනය කරයි, ලබන්නා එය නැවත ගණනය කරයි; දෙක ගැළපේ නම්, බොහෝ විට මඟදී කිසිවක් හානි වී නැත. ZIP ගොනු, PNG රූප සහ Ethernet ජාල එය භාවිත කරයි.
CRC-32 පණිවිඩය දැවැන්ත ද්විමය සංඛ්යාවක් ලෙස සලකා ස්ථාවර බහුපදයකින් බෙදයි; බිටු 32 ශේෂය ප්රතිඵලයයි. ප්රායෝගිකව එය කලින් සකස් කළ වගුවක් සමඟ බයිටයෙන් බයිටය ගණනය කෙරේ; එබැවින් එය ඉතා වේගවත්.
දුර්වලතා
එය ආරක්ෂා කරන්නේ අහම්බෙන් සිදු වන දෝෂවලින් මිස, හිතාමතාම පණිවිඩය වෙනස් කරන කෙනෙකුගෙන් නොවේ. ව්යාජ පණිවිඩයකට සැබෑ එකේම CRC ලැබෙන ලෙස ඕනෑම කෙනෙකුට බයිට හතරක් සකස් කළ හැක; අවසාන පියවරෙන් එය පෙන්වයි. හිතාමතා කරන වෙනස්කම් හඳුනා ගැනීමට ගුප්ත විද්යාත්මක හැෂ් එකක්, නැතහොත් ඊටත් වඩා හොඳින්, අත්සනක් අවශ්යයි.
පිරිවිතර
MD5 බිඳී ගිය හැෂ්
වසර ගණනාවක් MD5 සාමාන්ය භාවිතයේ හැෂ් එක විය. එය ඕනෑම පණිවිඩයක් බිටු 128කට හරවයි; එකම පණිවිඩයට සෑම විටම එකම ප්රතිඵලය, පණිවිඩය සමඟ කිසිදු දෘශ්ය සම්බන්ධයක් නොමැතිව. මුරපද ගබඩා කිරීමට, බාගැනීම් පරීක්ෂා කිරීමට සහ සහතික අත්සන් කිරීමට එය භාවිත විය.
එය පණිවිඩය බිටු 512 කොටස් සම්පූර්ණ වන තුරු පුරවා, බිටු 32 රෙජිස්ටර හතරක් මත එකතු කිරීම්, කරකැවීම් සහ තාර්කික ශ්රිත පියවර 64කින් සෑම කොටසක්ම මිශ්ර කරයි.
දුර්වලතා
2004 සිට සාමාන්ය පරිගණකයකින් තත්පර කිහිපයකින් ගැටුම් සෑදිය හැක; එනම් එකම MD5 ඇති වෙනස් පණිවිඩ දෙකක්. 2012 දී Flame අනිෂ්ට මෘදුකාංගය MD5 ගැටුමක් භාවිත කර Microsoft සහතිකයක් ව්යාජ ලෙස සෑදුවේය. ඊට අමතරව එය කෙතරම් වේගවත්ද යත්, ග්රැෆික් කාඩ්පතකට තත්පරයකට මුරපද බිලියන ගණනක් අත්හදා බැලිය හැක. අද එය ප්රයෝජනවත් වන්නේ CRC මෙන්, අහම්බෙන් සිදු වන දෝෂවලට එරෙහි චෙක්සම් එකක් ලෙස පමණි.
පිරිවිතර
SHA-256 ආරක්ෂිත හැෂ්
HTTPS සහතික සහ මෘදුකාංග අත්සන්වල සිට Git සහ Bitcoin දක්වා අන්තර්ජාලයේ විශාල කොටසක් SHA-256 මත රඳා පවතී. එය බිටු 256ක් නිපදවයි; MD5 මෙන් නොව, කිසිවෙකු තවම ගැටුමක් හෝ ප්රතිඵලයෙන් පණිවිඩයට ආපසු යාමට ක්රමයක් සොයාගෙන නැත.
එය MD5 ට බොහෝ දුරට සමානව ක්රියා කරයි; රෙජිස්ටර අටක්, වට 64ක් සහ සෑම නව වචනයක්ම පෙර වචන හතරක් මත රඳා පවතින කොටස් ව්යාප්තියක් ඇත. පණිවිඩයේ එක් බිටුවක් පමණක් වෙනස් කළත්, ප්රතිඵලයේ බිටුවලින් සාමාන්යයෙන් අඩක් වෙනස් වේ.
දුර්වලතා
එය ආරක්ෂිත හැෂ් එකක් වුවත් වේගවත්; එබැවින් මුරපද ගබඩා කිරීමට එය පමණක් ප්රමාණවත් නැත: ප්රහාරකයෙකුට තත්පරයකට අපේක්ෂක මුරපද බිලියන ගණනක් අත්හදා බැලිය හැක. Argon2id වැනි හිතාමතාම මන්දගාමී ඇල්ගොරිතම ඇත්තේ ඒ සඳහායි. ක්වොන්ටම් පරිගණකයකට කළ හැක්කේ එහි බිටු ශක්තිය අඩකින් අඩු කිරීම පමණි (ග්රෝවර්ගේ ඇල්ගොරිතමය); එයින් පසුවත් විශාල ආරක්ෂිත පරතරයක් ඉතිරි වේ.
පිරිවිතර
SHA3-256 ආරක්ෂිත හැෂ්
SHA-3 යනු NIST විසින් 2015 දී විවෘත තරඟයක් මගින් තෝරාගත් ප්රමිතියයි. SHA-256 බිඳී ගිය නිසා නොව, SHA-2 පවුලේ කවදා හෝ දුර්වලතාවක් මතු වුවහොත්, සම්පූර්ණයෙන්ම වෙනස් ලෙස ගොඩනැගූ විකල්පයක් තිබීමටයි.
එය දම්වැල් ලෙස යා කළ කොටස් වෙනුවට “ස්පොන්ජියක්” භාවිත කරයි: පණිවිඩය කොටස් වශයෙන් උරා ගෙන පසුව ප්රතිඵලය ලබා ගැනීමට මිරිකන බිටු 1600 තත්ත්වයකි. සෑම වටයක්ම θ, ρ, π, χ සහ ι යන පියවර පහ යොදයි; රේඛීය නොවන්නේ χ පමණි. එම ස්පොන්ජියෙන්ම SHAKE128 සහ SHAKE256 ගොඩනගන අතර, ML-KEM සහ ML-DSA ඒවා අභ්යන්තරයේ භාවිත කරයි.
දුර්වලතා
ප්රායෝගික දුර්වලතා කිසිවක් දන්නේ නැත. SHA-256 මෙන්ම, මුරපද ගබඩා කිරීමට එය වේගවත් වැඩියි.
පිරිවිතර
Argon2id මුරපද ගබඩා කිරීම
මුරපද ගබඩා කිරීමට ඕනෑ වේගවත් හැෂ් එකක් නොව, හිතාමතාම මන්දගාමී එකකි. Argon2id 2015 දී Password Hashing Competition ජයගත් අතර අද OWASP නිර්දේශ කරන්නේ එයයි. කාලයට අමතරව එය මතකයද ඉල්ලා සිටී: සෑම උත්සාහයක්ම මෙගාබයිට කිහිපයක් පුරවන අතර, එහි සෑම කොටසක්ම පෙර කොටස් මත රඳා පවතී.
සෝල්ට් යනු ප්රතිඵලය සමඟ ගබඩා කරන අහඹු අගයකි. එය නිසා එකම මුරපදය ඇති දෙදෙනෙකුට වෙනස් ප්රතිඵල ලැබෙන අතර, ප්රහාරකයාට සෑම ගිණුමකටම වෙන වෙනම පහර දීමට සිදු වේ. සේවාදායකය ගබඩා කරන්නේ අවසානයේ ඔබට පෙනෙන සම්පූර්ණ පේළියයි; ඇල්ගොරිතමය, පිරිවැය, සෝල්ට් සහ ප්රතිඵලය ඇතුළුව, නමුත් කිසි විටෙක මුරපදය නොවේ.
මතකය වෙනස් කර කාලය වැඩි වන ආකාරය බලන්න. ඔබට එය ලොග් වන මොහොතේ ක්ෂණිකයක් පමණි; මුරපද බිලියනයක් අත්හදා බලන කෙනෙකුට එය විශාල පිරිවැයකි.
දුර්වලතා
කෙටි හෝ සුලභ මුරපදයක් තවමත් අනුමාන කළ හැක, වඩා සෙමින් පමණි. ඕනෑම උපාංගයක නිරූපණය ක්රියා කිරීමට මෙහි මතකය කුඩායි; සේවාදායකවල OWASP නිර්දේශ කරන පරිදි අවම වශයෙන් MiB 19ක් භාවිත කෙරේ.
පිරිවිතර
සීසර් ඓතිහාසික සංකේතනය
ජුලියස් සීසර් තම යුද පණිවිඩ සංකේතනය කළේ සෑම අකුරක්ම හෝඩියේ ස්ථාවර ස්ථාන ගණනකින් විස්ථාපනය කිරීමෙනි. 3 සමඟ A, D බවටද “hola”, “krod” බවටද පත් වේ. විකේතනය කිරීමට ආපසු විස්ථාපනය කරයි.
දුර්වලතා
හැකි යතුරු ඇත්තේ 25ක් පමණි; එබැවින් අවසාන පියවරේ මෙන් ඒ සියල්ල අත්හදා බැලීම ප්රමාණවත්; කියවිය හැකි පාඨයක් ලැබෙන්නේ එකකින් පමණි. තවද එක් අකුරක් සෑම විටම එකම ආකාරයට සංකේතනය වන නිසා, භාෂාවේ වැඩිපුරම භාවිත වන අකුරු යතුර හෙළි කරයි.
Vigenère ඓතිහාසික සංකේතනය
විජිනෙයාර් සංකේතනය වචනයක් යතුර ලෙස භාවිත කරයි; යතුරේ සෑම අකුරක්ම පණිවිඩයේ අදාළ අකුර කොපමණ විස්ථාපනය කළ යුතුදැයි කියයි. පණිවිඩයේ එකම අකුර එහි ස්ථානය අනුව වෙනස් ලෙස සංකේතනය විය හැකි නිසා, එය සියවස් තුනක් පමණ “විකේතනය කළ නොහැකි සංකේතනය” ලෙස හැඳින්විණි.
දුර්වලතා
යතුර නැවත නැවත යෙදේ. 19 වන සියවසේදී චාල්ස් බැබේජ් සහ ෆ්රෙඩ්රික් කැසිස්කි සංකේතිත පාඨයේ නැවත නැවත එන අනුපිළිවෙළවලින් යතුරේ දිග සොයා ගන්නා ආකාරය සොයා ගත්හ. දිග දැනගත් පසු පාඨය තීරුවලට බෙදේ; සෑම තීරුවක්ම සංඛ්යාත විශ්ලේෂණයෙන් බිඳිය හැකි සරල සීසර් සංකේතනයකි. අවසාන පියවරෙන් එම තීරු පෙන්වයි.
AES-256-GCM සමමිතික සංකේතනය
2001 සිට AES ප්රමිතිගත සමමිතික සංකේතනයයි: එකම යතුර සංකේතනය සහ විකේතනය කරයි. HTTPS, WPA2 සහ WPA3 සහිත Wi-Fi, සංකේතිත තැටි සහ බොහෝ පණිවිඩ යෙදුම් එය භාවිත කරයි. එය බයිට 16 කොටස් 4×4 ජාලයක තබා, ප්රතිස්ථාපනය, විස්ථාපනය, මිශ්ර කිරීම සහ යතුර එකතු කිරීම යන වට 14ක් හරහා යවයි.
GCM යනු එය භාවිත කරන ප්රකාරයයි: AES කවුන්ටරයක් සංකේතනය කරයි, ප්රතිඵලය XOR මගින් පණිවිඩය සමඟ සංයෝජනය වේ, අවසානයේ ඕනෑම වෙනස්කමක් හඳුනා ගන්නා ටැගයක් ගණනය කෙරේ. nonce යනු එකම යතුර සමඟ කිසි විටෙක නැවත භාවිත නොකළ යුතු අංකයකි; මෙහි සෑම වතාවකම නව එකක් ජනනය වන නිසා පණිවිඩය වෙනස් නොවුණත් ප්රතිඵලය වෙනස් වේ.
දුර්වලතා
අහඹු බිටු 256 යතුරක් සමඟ ප්රායෝගික ප්රහාරයක් නැත, ක්වොන්ටම් පරිගණක සමඟ වුවද. අනතුර ඇත්තේ වැරදි ලෙස භාවිත කිරීමෙයි: එකම යතුර සමඟ nonce එකක් නැවත භාවිත කිරීමෙන් පණිවිඩ නැවත ලබා ගැනීමටත් ටැග ව්යාජ ලෙස සෑදීමටත් ඉඩ සලසයි. මූලික ගැටලුව වෙනත් එකකි: කිසි දිනෙක මුණ නොගැසුණු දෙදෙනෙකු යතුර බෙදා ගන්නේ කෙසේද? පොදු යතුරු ගුප්ත විද්යාව ඇත්තේ ඒ සඳහායි.
පිරිවිතර
ChaCha20-Poly1305 සමමිතික සංකේතනය
ChaCha20-Poly1305, AES-GCM කරන කාර්යයම වෙනත් ව්යුහයකින් කරයි. ඩැනියෙල් ජේ. බර්න්ස්ටයින් විසින් නිර්මාණය කළ එය එකතු කිරීම්, කරකැවීම් සහ XOR (ARX ලෙස හැඳින්වේ) පමණක් භාවිත කරයි; එබැවින් AES සඳහා විශේෂ උපදෙස් නොමැති දුරකථනවල පවා එය වේගවත්. TLS 1.3, WireGuard සහ SSH එය භාවිත කරයි.
ChaCha20, වචන 16ක ජාලයක් (නියත, යතුර, කවුන්ටරයක් සහ nonce) වට 20ක් පුරා මිශ්ර කර, පණිවිඩය සමඟ සංයෝජනය වන බයිට ප්රවාහයක් නිපදවයි. Poly1305, 2¹³⁰ − 5 මාපාංකයෙන් බහුපදයක් ඇගයීමෙන් ටැගය ගණනය කරයි.
දුර්වලතා
ක්වොන්ටම් පරිගණක ඇතුළුව, ප්රායෝගික ප්රහාරයක් දන්නේ නැත. AES-GCM මෙන්ම, එකම යතුර සමඟ nonce එකක් කිසි විටෙක නැවත භාවිත නොකළ යුතුයි.
පිරිවිතර
RSA-OAEP පොදු යතුරු සංකේතනය
RSA (1977) පළමු ප්රායෝගික පොදු යතුරු සංකේතනයයි. ඕනෑම කෙනෙකුට පොදු යතුරෙන් සංකේතනය කළ හැකි නමුත්, විකේතනය කළ හැක්කේ පෞද්ගලික යතුර ඇති අයට පමණි. එහි ආරක්ෂාව රඳා පවතින්නේ දැවැන්ත ප්රථමක දෙකක් ගුණ කිරීම පහසු වුවත්, ඒවා නැවත වෙන් කිරීම අපහසු වීම මතයි.
සංකේතනය යනු සංඛ්යාවක් බවට හැරවූ පණිවිඩය n මාපාංකයෙන් e බලයට නැංවීමයි; විකේතනය යනු ප්රතිඵලය d බලයට නැංවීමයි. OAEP යනු පෙරාතුව යොදන අහඹු පිරවීමකි; එවිට එකම පණිවිඩයට කිසි විටෙක එකම ප්රතිඵලය නොලැබේ. බිටු 2048 යතුරකට ඇතුළත් කළ හැක්කේ බයිට 190ක් පමණි; ප්රායෝගිකව RSA, AES යතුරක් සංකේතනය කරන අතර AES දත්ත සංකේතනය කරයි.
දුර්වලතා
ප්රමාණවත් තරම් විශාල ක්වොන්ටම් පරිගණකයකට ෂෝර්ගේ ඇල්ගොරිතමයෙන් n සාධක වලට වෙන් කර පෞද්ගලික යතුර ලබා ගත හැක. එබැවින් NIST, 2035 දී RSA භාවිතයට ඉඩ දීම නැවැත්වීමට යෝජනා කරයි. තවද, කෙනෙකුට අද සංකේතිත පණිවිඩ ගබඩා කර, එවැනි පරිගණකයක් ඇති වූ විට ඒවා විකේතනය කළ හැක.
පිරිවිතර
X25519 යතුරු හුවමාරුව
X25519 යතුරක් නොයවාම එය බෙදා ගන්නේ කෙසේද යන ගැටලුව විසඳයි. ඇලිස් සහ බොබ් එක් එක්කෙනා රහස් අංකයක් තෝරා, ඉලිප්සීය වක්රයක ලක්ෂ්යයක් එම අංකයෙන් ගුණ කළ ප්රතිඵලය ප්රසිද්ධ කරයි; ඉන්පසු සෑම කෙනෙකුම අනෙකාගේ ප්රතිඵලය තමාගේම රහසින් ගුණ කරයි. දෙදෙනාම එකම ලක්ෂ්යයට පැමිණෙන අතර, පොදු අගයන් පමණක් දුටු කෙනෙකුට එය ගණනය කළ නොහැක.
එය අද වැඩිපුරම භාවිත වන යතුරු හුවමාරුවයි; TLS 1.3, Signal, WhatsApp සහ SSH වල. මෙහි හවුල් රහස ඔබේ පණිවිඩය සංකේතනය කරන AES-256-GCM යතුරක් බවට පත් වේ.
දුර්වලතා
RSA මෙන්ම, විශාල ක්වොන්ටම් පරිගණකයක ෂෝර්ගේ ඇල්ගොරිතමය එය බිඳ දමනු ඇත. එබැවින් බ්රවුසර දැනටමත් එය ML-KEM සමඟ ඒකාබද්ධ කර භාවිත කරයි (X25519MLKEM768); ඊළඟ කාණ්ඩයෙන් පෙන්වන්නේ එයයි.
පිරිවිතර
ML-KEM-768 පශ්චාත්-ක්වොන්ටම් යතුරු හුවමාරුව
ML-KEM (FIPS 203, 2024) යතුරු හුවමාරුව සඳහා වූ පශ්චාත්-ක්වොන්ටම් ආදේශකයයි. එහි ආරක්ෂාව පැමිණෙන්නේ “දෝෂ සහිත ඉගෙනීම” නම් දැලිස් ගැටලුවකිනි. පොදු යතුර යනු කුඩා සංඛ්යාවලින් යුත් රහසකින් ගුණ කළ අහඹු න්යාසයක් වන A, සහ ඊට එකතු කළ සුළු ඝෝෂාවකි. ඝෝෂාව නොමැති නම් එය විසඳීමට පහසු සමීකරණ පද්ධතියක් වනු ඇත; ඝෝෂාව සමඟ, ක්වොන්ටම් පරිගණක ඇතුළුව, කිසිවෙකු කාර්යක්ෂම ක්රමයක් දන්නේ නැත.
ඇලිස් අහඹු බයිට 32ක් තෝරා, බොබ්ගේ පොදු යතුර භාවිතයෙන් ඒවා බහුපදවල සඟවා, ප්රතිඵලය ඔහුට යවයි. බොබ් තම රහස භාවිතයෙන් ඝෝෂාවෙන් වැඩි කොටස ඉවත් කරයි; සෑම සංගුණකයක්ම 0 ට හෝ 1665 ට ආසන්නව පවතින අතර වටයා ගැනීමෙන් බිටු නැවත ලැබේ. එතැන් සිට දෙදෙනාම එකම බයිට 32 රහස ව්යුත්පන්න කරයි; මෙහි එය AES-256-GCM මගින් ඔබේ පණිවිඩය සංකේතනය කරයි.
දුර්වලතා
RSA සහ ඉලිප්සීය වක්ර හා සසඳන විට එය නවකයි; එබැවින් අද එය X25519 සමඟ එක්ව භාවිත කෙරේ: දෙකෙන් එකක් බිඳුණත් අනෙක තවමත් ආරක්ෂා කරයි. යතුරු සහ සංකේතිත පාඨ බොහෝ විශාලයි; X25519 හි බයිට 32 ට සාපේක්ෂව බයිට 1184 සහ 1088 කි.
පිරිවිතර
ML-DSA-65 පශ්චාත්-ක්වොන්ටම් අත්සන
ML-DSA (FIPS 204, 2024) පශ්චාත්-ක්වොන්ටම් ඩිජිටල් අත්සනයි. අත්සනකින් ඔප්පු වන්නේ පණිවිඩයක් පෞද්ගලික යතුර ඇති අයගෙන් පැමිණි බවත්, කිසිවෙකු එය වෙනස් නොකළ බවත්ය; පොදු යතුර ඇති ඕනෑම කෙනෙකුට එය පරීක්ෂා කළ හැක.
අත්සන් කිරීමට අහඹු දෛශිකයක් වන y තෝරා, පණිවිඩයේ හැෂ් එකෙන් ලැබෙන c අභියෝගය අනුව රහස භාවිතයෙන් එය විස්ථාපනය කරයි. ප්රතිඵලය වන z විශාල වැඩි නිසා රහස ගැන යමක් හෙළි කළ හැකි නම්, එය ඉවත දමා නැවත උත්සාහ කරයි; සාමාන්යයෙන් උත්සාහ පහක් පමණ අවශ්ය වේ. සත්යාපනය සඳහා පොදු යතුරෙන් ගණනය නැවත කර එකම අභියෝගය ලැබේදැයි පරීක්ෂා කරයි. පණිවිඩයේ එක් අක්ෂරයක් වෙනස් කිරීම පමණක් අත්සන අවලංගු කිරීමට ප්රමාණවත් බව අවසානයේ ඔබට පෙනෙනු ඇත.
දුර්වලතා
Ed25519 හි බයිට 64 ට සාපේක්ෂව අත්සන් බයිට 3309ක් ගනී; එය සහතිකවලටත් අත්සන් බොහෝ භාවිත කරන ප්රොටෝකෝලවලටත් බරක් වේ. ML-KEM මෙන්ම එය නවකයි; එබැවින් සංක්රමණය ප්රවේශමෙන් සහ අදියර වශයෙන් සිදු කෙරේ.
පිරිවිතර