Networking Article 10 – මොනවටද Symmetric encryption, Asymmetric encryption, digital signature, hashing කියලා කියන්නේ?
Networking Article 10 – මොනවටද Symmetric encryption, Asymmetric encryption, digital signature, hashing කියලා කියන්නේ?
මේ වෙනකොට internet එක හරහා අපට ඕනි තැනක ඉදන්, ඕනි වෙලාවල දත්ත සන්නිවේදනය කරන්න පුලුවන් වෙලා තියෙනවා. හැබැයි අපට එහෙම දත්ත සන්නිවේදනය කරන්න පුලුවන් උනාට සමහර වෙලාවට දත්ත වල රහස්ය භාවය ගැන අපට ප්රශ්න එනවා. ඉතිං ඒ එන ප්රශ්න වලට answer විදියට data encryption methods එහෙම නැත්නම් දත්ත ගුප්ත කේතන භාවිතා කරනවා. Data encryption methods mainly parts දෙකකට බෙදෙනවා.
- Symmetric key encryption (සමමිතික යතුරු කේතනය)
- Asymmetric key encryption (අසමමිතික යතුරු කේතනය)
දැන් අපි මේවා ගැන වෙන වෙනම බලමු. ඒකට කලින් data encryption & data decryption කියන්නේ මොකක්ද කියලා ඔයාට කියලා දෙන එක වැදගත් වෙයි.
- Data encryption (කේතනය) – සරල පෙලක් (Plaintext) මිනිසාට කියවිය නොහැකි කේතයක් (Ciphertext) බවට පත් කරන එකට දත්ත කේතනය එහෙම නැත්නම් data encryption කියලා කියනවා.
- Data decryption (විකේතනය) – Encrypt කරපු code එක (Ciphertext) නැවත මිනිසාට කියවිය හැකි කේතයක් (Plaintext) බවට පත් කරන එකට දත්ත විකේතනය එහෙම නැත්නම් data decryption කියලා කියනවා.
Symmetric key encryption (සමමිතික යතුරු කේතනය)
මේක අපි example එකක් එක්ක බලමු.
හරි ඔයා හිතන්නකෝ A, B ට encrypt කරලා message එකක් යවනවා කියලා. මේකෙදී A, encryption key එකක් use කරලා තමයි message එක encrypt කරන්නේ. දැන් B ට මේ message එක read කරන්න නම් අනිවාර්යෙන්ම A use කරපු encryption key එකෙන් data decryption කරන්න ඕනි.
Symmetric key encryption එකේදී අනිවාර්යෙන්ම data encrypt කරන්න use කරපු encryption key එකම data decryption කරන්න use කරන්න වෙනවා කියලා අපි කිව්වනේ. ඒ කියන්නේ data encrypt කරන්න සහ data decrypt කරන්න use කරන්නේ එකම key එක. දැන් ඔයාලට තේරෙනවනේ එකම key එක use කරනවා කියන්නේ symmetric key encryption එකේ security එක අඩුයි කියලා.
Asymmetric key encryption (අසමමිතික යතුරු කේතනය)
මේ method එකේදී data encrypt කරන්නයි decrypt කරන්නයි එකිනෙකට වෙනස් keys දෙකක් use කරනවා. Data transmit කරන්න involve වෙන හැමෝටම අනිවාර්යෙන්ම මේ keys දෙක තියෙනවා. Public key & Private key කියන්නේ ඒ keys වලට තමයි. Private key එක use කරලා අපට data encrypt කරන්න පුලුවන්. Private key එක තියෙන්නේ අපි ගාව විතරයි. ඒක කාටවත් දෙන්නේ නෑ. Public key එක use කරලා data decrypt කරන්න පුලුවන්.
හරි ඔයා හිතන්නකෝ Bob, එයාගේ Private key එකෙන් encrypt කරලා Alice ට message එකක් යවනවා කියලා. දැන් Alice ට මේ message එක read කරන්න නම් අනිවාර්යෙන්ම Bob ගේ Public key එක තියෙන්න ඕනි. දැන් ඔයාලට තේරෙනවනේ කව්රුහරි Private key එකෙන් encrypt කරලා එවපු message එකක් කියවන්න නම් අනිවාර්යෙන්ම ඒ key එකට අදාල Public key එක තියෙන්න ඕනි. ඒ කියනේ encrypt කරන්නයි decrypt කරන්නයි use කරන keys දෙක ගණිතමය වශයෙන් ගැලපෙන්න ඕනි.
මේ method එකෙන් data transmit කරන්කොට hackers ලගේ බලපෑමක් එන්නේ නැද්ද? දැන් අපි ඒ ගැන කතා කරමු.
හරි අපි කලින් කතා කරානේ Asymmetric key encryption එකට අනුව Bob, Alice ට message එක යවන විදිය ගැන. එතකොට Bob සහ Alice අතරේ hacker කෙනෙක් හිටියොත් එයාට Bob සහ Alice අතරේ වෙන සංවාදයට බලපෑම් කරන්න පුලුවන්ද?
ඔයාලට මතක ඇති අපි කලින් කතා කරා Bob, එයාගේ Private key එකෙන් encrypt කරලා Alice ට message එකක් යවනවා කියලා. ඒ වගේම Alice ට මේ message එක read කරන්න නම් අනිවාර්යෙන්ම Bob ගේ Public key එක තියෙන්න ඕනි කියලා.
මේ දෙන්නා අතරේ hacker කෙනෙක් හිටියොත් එයාට Bob එවපු message එක open කරන්න පුලුවන්. හැබැයි ඒ message එකේ තියෙන්නේ මොනවද කියලා තේරුම් ගන්න බෑ. මොකද message එක encrypt කරලනේ තියෙන්නේ.
හැබැයි අපි කලින් කිව්වනේ Bob ගේ Public key එක නැතුව Alice ට උනත් මේ message එක read කරන්න බෑ කියලා. ඉතිං Bob එයාගේ Public key එක Alice ට දෙනකොට මේක hacker අතට පත් වෙන්නත් පුලුවන්. එහෙම උනොත්, Asymmetric key encryption එකේ රසස්ය භාවය ගැන ගැටලු ඇති වෙනවා නේද? ඉතිං ඕකට solution එකක් විදියට තමයි digital signature method එක ආවේ.
Digital signature (අංකිත අත්සන)
ඔයාලා දන්නවනේ normally document එකක validity එක බලන්න signature එක යොදා ගන්නවා කියලා. ඉතිං Internet එක හරහා documents share වෙනකොට ඒකේ validity එකට Digital signature එක යොදා ගන්නවා. Digital signature එක නිසා, message එක එව්ව කෙනාගේ වලංගුතාවය (Authentication) සහ එයා එවපු message එක වෙනස් වෙලා නැති බව (Integrity) තහවුරු වෙනවා. දැන් අපි බලමු Digital signature එකෙන් වෙන්නේ මොකක්ද කියලා.
හරි දැන් Bob ට Alice ට message එකක් යවන්න ඕනි කියලා හිතන්නකෝ, මුලින්ම වෙන්නේ Bob, software එකක් use කරලා Alice ට යවන්න ඕනි message එක වරකට පේලි කිහිපයක් එන විදියට කුඩා කොටස් වලට කඩන එක. මේ method එකට hashing කියලා කියනවා.මේකදී Bob ගේ message එක code එකකට translate වෙනවා. ඒක අපට තේරුම් ගන්න බෑ. Encrypt වෙලා තියෙන්නේ. Hashing වලින් එන output එකට message digest කියලා කියනවා.
අපි send කරන message එක ගොඩක් දිගයි නම්, output එක විදියට message digest ගොඩක් හම්බු වෙන්න පුලුවන්. ඊලගට තමයි digital signature එක use වෙන්නේ. Message digest සේරම එකතු උනාට පස්සේ Bob එයාගේ private Key එකෙන් message digest ටික සහ normal message එක encrypt කරනවා. Encrypt කරාට පස්සේ ලැබෙන result එකට තමයි digital signature කියලා කියන්නේ. ඊට පස්සේ Alice ට තියෙන්නේ digital signature එක normal letter එකක් attach කරලා Bob ට send කරන්න.
දැන් අපි බලමු Alice කොහොමද මේ message එක read කරන්නේ කියලා.
මුලින්ම Alice කරන්නේ Bob ගේ public key එක use කරලා message එක decrypt කරන එක. හරියට message එක decrypt උනොත්, මේ message එක Bob එව්වා කියලා තහවුරු වෙනවා.
ඊලගට බලන්න තියෙන්නේ අතරමගදී message එක වෙනස් උනාද කියලා. දැන් අපි කලින් කිව්වනේ Bob ගේ public key එක use කරලා message එක decrypt කරා කියලා. එහෙම decrypt උනාම අපට ඊලගට බලා ගන්න පුලුවන් වෙන්නේ message digest ටික සහ normal message එක.
දැන් Alice ට කරන්න තියෙන්නේ, normal message එක hashing software එකකට දාන එක. එහෙම දැම්මට පස්සේ එන message digest එකයි, Bob එවපු message digest එකයි සමානයි නම්, මේ message එක අතරමැදදී change වෙලා නෑ. ඒ කියන්නේ authentication & integrity වලට ප්රශ්නයක් වෙලා නෑ.
ඉතිං මේ විදියට තමයි internet එක through, documents වල security එක බලන්නේ. ඊලග article එකෙන් තවත් topic එකක් එක්ක හම්බු වෙමු.
Networking ඊලග Article එකට යන්න