Cryptography සිංහලෙන් — 01

Ashan Priyadarshana
3 min readOct 13, 2020

Cryptography යනු සාමාන්‍ය තොරතුරු (plaintext — terminology) කිසි තේරුමක් නැති, කියවීමට අපහසු දෙයක් (ciphertext — terminology) බවට හැරවීම සහ ඉන්පසු receiver විසින් එය decrypt කර සත්‍ය තොරතුර ලබා ගැනීම යන process එක පිළිබද අද්‍යනයයි.

Cipher එකක් යනු?

cipher එකක් යනු සරලවම algorithm එකකි. එනම් encryption හෝ decryption ක්‍රියාවලිය සිදු වන steps ටිකයි. cipher (encryption හෝ decryption algorithm) එකක ක්‍රියාවලියට අත්‍යවශ්‍යම වන තවත් දෙයක් වන්නේ key එකයි (හෝ keys දෙකයි). cipher එකක් යනු algorithm එකක් වන නිසා එය අවශ්‍යනම් රහසක් විය යුතුම නැත. නමුත් අදාළ key එක (keys දෙකක් තිබෙන අවස්ථාවලත් අනිවාර්යෙන් එකක්) රහසක් විය යුතුම. එකම cipher එකෙන් එකම plaintext එක වෙනස් keys වලින් encrypt කල විට වෙනස් cipher texts ලැබෙයි. එය decrypt කිරීමට එම නිසා හරි key එක තිබිය යුතුයි. එම නිසයි අදාළ key එක (keys දෙකක් use කරන විට private එක) රහසක් වියම යුත්තේ.

ඉහත විස්තරය අනුව ciphers යනු සරල concept එකක් ලෙස පෙනුනත්, අද පවතින සියලුම communication පද්දති වල (Internet, mobile phones, degital television, ATM, etc) තොරතුරු රහස්‍යව හුවමාරු කරීම සදහා ciphers ඉතා වැදගත් කාර්ය භාරයක් ඉටු කරයි.

Cryptanalysis

cryptography වලටම සම්බන්ද cryptanalysis නම් sub field එකක් ඇත. එහෙදි අවදානය යොමු කරන්නේ තොරතුරු පද්දති හොදින් විශ්ලේෂණය කර ඒවාවල පවතින රහස්‍ය පැතිකඩවල් අනාවරණය කර ගැනීම වේ. එනම් cryptanalysis යනු cryptographic systems බිදදමා (breach කර) ඒවා තුල ඇති encrypted තොරතුරැ ලාබා ගැනීමයි. වැදගත් කාරණයක් වන්නේ මෙහිදී, cryptographic key එක නොමැතිව මෙම ක්‍රියාවලිය ආරම්භ කිරීමයි (key එක දන්නවනම් breach කරනවා කියා කරන්න දෙයක් නැහැ).

Symmetric Encryption

යම් කිසි පද්දතියක් හෝ ක්‍රියාවලියක් encryption හා decryption කිරීම සදහා එකම key භාවිතා කරනවානම් එය Symmetric Encryption එක use කරන පද්දතියක් ලෙස හදුන්වයි. symmatric කියල කියන්නේ මොකද encryption සහ decryption යන පැති දෙකේම key එක සමාන නිසයි.

ඉහත රූප සටහනේ පෙනෙන පරිදී sender සහ receiver දෙදෙනාම එකම key එක use කරන නිසා මෙය symmetric encryption වේ. E සහ D යනු පිළිවලින් Encryption සහ Decryption algorithm දෙක වේ. මෙම Encryptor සහ Decryptor යන දෙකේ සංයෝගයට අපි Cipher එකක් කියල කියනව. මේ වන විට ඉතා සංකීර්ණ සහ බිද දැමීමට ඉතා අපහසු Ciphers (Encryption සහ Decryption algorithms) රැසක් පවතී. එම නිසා ඔබ යම් කටයුත්තක් සදහා cipher එකක් අලුතින් හදනවට වඩා එවැනි cipher එකක් use කිරීම නුවණට හුරුයි. මොකද ඔබ සාදන එක buggy වීමට පුළුවන් සහ ඒ නිසාම ලේසියෙන් breach කිරීමට හැකි වනු ඇත. එසේම හොදින් තේරුම් තේරුම් ගන්න මෙම ciphers පොදුවේ ඕනෑම කෙනෙක්ට use කරන්න පුළුවන්. එම නිසා ඕනෑම කෙනෙක්ට ciphers වල algorithm සහ steps ටික බලාගන්න පුළුවන්. නමුත් එසේ වුනායැයි කියා cipher එක week වෙන්නෙවත් එය breach කිරීමට පහසු වෙන්නෙවත් නැහැ. මොකද cipher එක හදපු කෙනාටවත්, යම් කිසි plaintext එකක් encrypt කරන්න භාවිතා කල key එක දන්නේ නැත්තම් අදාල ciphertext decrypt කර plaintext එක ලබා ගන්න බැහැ (public key encryption ක්‍රමයේදීනම් encrypt කරන්න use කල key එක දැනගත්තත් බැහැ). එම නිසා වැදගත්ම දෙය වන්නේ key එක රහසක්ව තබා ගැනීමයි.

keys ද භාවිතා වන වාරය අනූව වර්ග දෙකකට වෙන් කල හැක:

  • Single use key (one time key) : මෙහිදී අපි යවන්නා වූ සෑම message එකක්ම encrypt කිරීමට වෙනස් key එකක් use කරයි. උදාහරණයක් ලෙස emails ගත හැක. එනම් සෑම email එකක්ම වෙනස් key එකකින් යොදාගෙන encrypt කරලයි යවන්නේ.
  • Multi use key (many time key): එකම key එක messages කීපයක් encrypt කරීමට භාවිතා කරනවානම් එයට many time key එකක් කියල කියනව. files encrypt කිරීමේදී එකම key එක use කරනවා දැකිය හැක.

Cryptography concept එක අරගෙන ඒ වටා ගෙතුන හා ඒ ගැන කතා කරන films කීපයක්ම ඇවිත් තියෙනවා. පහලින් තියෙන්නේ ඉන් සමහරක්:

  • The Da Vinci Code
  • National Treasure: Book of Secrets
  • A Beautiful Mind
  • The Imitation Game
  • U-571
  • Snowden
  • Windtalkers
  • Travelling Salesman

--

--

Ashan Priyadarshana

Associate Technical Lead | BSc. Information Technology | MSc. Artificial Intelligence | Founder Programming.lk | GSoC 2017 |