header

header

Wednesday, January 7, 2015

පරිගණක හා ජාල ආරක්ෂාව 3[MAC and HASH FUNCTIONS]

පරිගණක හා ජාල ආරක්ෂාව පාඩම් මාලාවේ තවත් අලුත් මාතෘකාවක් තමයි අද කතා කරන්න බලාපොරොත්තු වෙන්නේ.සයිපර් එකක් හදල බලාපොරොත්තු වෙන්නේ තෙවෙනි පාර්ශවයකට නොතේරෙන විදියට පණිවිඩය අදාළ කෙනා වෙත යවන එකනේ.එතනදී ආරක්ෂා වෙන්නේconfidentiality කියන network service එක.අද පාඩමෙන් කියන්න යන්නේ message authentication code(MAC) and hash functions ගැන.මුලින්ම කියන්න ඕන මෙතනදී ආරක්ෂා වෙන්නේ authentication and message integrity කියන network services දෙක.

MESSAGE AUTHENTICATION CODE(MAC)
මෙයින් අදහස් කරන්නේ කාටහරි යවන මැසේජ් එක මත රදා පවතින fixed size block එකක්.මෙහෙම හදන code එක ඒ මැසේජ් එකටම අනන්යයි.ඒ වගේම මේ code එක හදන්න යවන්නා හා ලබන්නා විතරක් දන්න key එකකුත් යොදා ගන්නවා.message authentication algorithm එක යුස් කරලා කොහොමද MAC එක හදාගන්නේ කියල රුප සටහනෙන් පැහැදිලි වෙනවා.හරි මෙහෙම CODE එකක් හදා ගන්නේ මොනවටද කියල කිව්වේ නැහැනේ .මේකයි කතාව මෙහෙම එකක් යොදාගන්නේ  යවන්නා යවන යම් මැසේජ් එකක් අතර මගදී වෙනස් වුනාද කියල තහවුරු කරගන්න.යවන්නාගේ කෙලවරෙදී හා ලබන්නාගේ කෙලවරේදී ඔය කෝඩ් එක එකම නම් එකෙන් තහවුරු කරගන්නවා අතරමගදී මැසේජ් එක වෙනස් වුනේ නැහැ කියල.දැන් ඔයගොල්ලොන්ට පැහැදිලි ඇති මෙතනදී වෙන්නේ message integrity නෙට්වර්ක් සර්විස්  එකෙන් බලාපොරොත්තු වෙච්ච දේ බව.එතකොට ඔබ කල්පනා කරාවී authentication කියන වචනයේ මෙතන තේරුම මොකක්ද කියල මොකද  පසුව කතා කරන hash functions වලදීත් වෙන්නේ මේ හා සමානම දෙයක් නිසා.එකට උත්තරේ මෙහෙම කියන්නම්.authentication කියන එකෙන් අදහස් කරන්නේ යවන්නා හා ලබන්නාගේ identities තහවුරු කරගන්න එකනේ.ඒ දේ implement කරන්නේ keys භාවිතා කරලා.මෙතනදීත් දෙපාර්ශවය විතරක් දන්න කී එකක් පාවිච්චි කරලා තියෙනවා එතකොට කී එක දන්න දෙන්නට විතරයි මේ දේ කරන්න පුළුවන්.එතකොට මේ ක්‍රමයේදී authentication හා integrity කියන නෙට්වර්ක් සර්විස් දෙකම ආරක්ෂා වෙන බව පැහැදිලි වෙනවා ඇති.
MAC සුත්‍රයකින් පහත  පරිදි දක්වන්න පිළිවන්.
MAC = F(K, M)
HASH FUNCTIONS
hash functions පිලිබදව ඔබ බොහෝවිට අහල ඇති.මෙයිනුත් වෙන්නේ මැසේජ් එකට අනන්‍ය වෙන නියත සයිස් එකක් තියෙන කෝඩ් එකක් හදන එක.විශේෂත්වේ වෙන්නේ මෙතනදී කී එකක් භාවිතා නොවීම.මේහෙම හදන කෝඩ් එක  ඩයිජස්ට් එකක්,ෆින්ගර්ප්රින්ට් එකක් වගේ නම් වලනුත් හදුන්වනවා.සුත්රයකින් දැක්වුවවොත්,
h = H(M)
h කියන්නේ හැදෙන හැෂ් කෝඩ් එක 
H කියන්නේ හැෂ් කෝඩ් එක හදන්න යොදාගන්න හැෂ් ෆන්ක්ෂන් එක.
මෙලෙස යොදාගන්න හැෂ් ෆන්ක්ෂන් එකකට පහත අවශ්‍යතා තියෙන්න ඕන.
මැසේජ් එකේ සයිස් එක මත නොවෙනස්ව(ඕනෑම මැසේජ් එකකට) හැෂ් කෝඩ් එකක් සපයන්න ඕන.
  • හැෂ් කෝඩ් එක කම්පියුට් කරන්න ලේසි වෙන්න ඕන.
  • හැෂ් ෆන්ක්ෂන්ස් වන්වේ වෙන්න ඕන.ඒ කියන්නේ කව්රු හරි කෙනෙක් කෝඩ් එක දීල එකේ මැසේජ් එක හොයන්න කිව්වොත් එහෙම කරන්න බැරි වෙන්න ඕන.
  • ඒවගේම එකිනෙකට වෙනස් මැසේජ් දෙකකට එකම හැෂ් කෝඩ් එක ලබා නොදෙන්න ඕන(අදාළ ෆන්ක්ෂන් එකෙන් එහෙම ලැබෙන අවස්ථා විය නොහැකි තරම් වෙන්න ඕන).
දැනට භාවිතයේ තියෙන හැෂ් ෆන්ක්ෂන් කීපයකට උදාහරණ හැටියට MD5,SHA1 අලෝගරිතම්ස් දෙන්න පිළිවන්.
MD5
  • හැෂ් කෝඩ් සයිස් එක  බිට් 128යි.
පළමුව මැසේජ් එක බිට් 512 කොටස් වලට කඩා ගන්නවා.මැසේජ් එක හරියටම 512 බිට් කොටස් වලට බෙදන්න බැරිනම් පැඩින්ග් බිට්ස් කියල අතිරේක බිට්ස් මැසේජ් එකට එකතු කර ගන්නවා.රුප සටහන බලන්න.දැන් එහෙම හදපු 512 කැලි වලට md5 ෆන්ක්ෂන් එක දාලා එන  බිට් 128 කෝඩ් ඔක්කොගෙන්ම අවසානෙට 128 බිට් හැෂ් කෝඩ් එක හදාගන්නවා.මේ වගේ අවස්ථාවට XOR ගේට් එක පාවිච්චි කරනවා. 

SHA1
  • හැෂ් කෝඩ් සයිස් එක  160 යි.
හැෂ් කෝඩ් එක සාදන ආකාරය අවබෝද කරගැනීම සදහා රුප සටහන බලන්න.

මෙම හැෂ් අල්ගොරිත්ම් දෙකේ තවත් තොරතුරු අතර සන්සදනයක් පහත වගුවේ දැක්වෙනවා.

තවත් ලිපියක් සමගින් ලගදීම හමුවෙමු.

No comments:

Post a Comment