ကိန်းသီအိုရီ မိတ်ဆက်
ကိန်းသီအိုရီ
(Number Theory) ဆိုတာ တကယ်တော့ ကိန်းပြည့်တွေကို လ့လာတဲ့ ပညာပါ။ ဒီကိန်းပြည့်တွေကို
ကျွန်တော်တို ဟာ ဘာကြောင့် အထူးတလည် တကူးတက လ့လာရတာလဲဆိုတာ မဆွေးနွေးခင် ပထမဆုံးအနေနဲ ကိန်းသီအိုရီမှာပါ၀င်နေတဲ့ အဓိက စကားလုံးတွေကို
နည်းနည်းလေး ပန်နွှေးပါရစေ။
#Integer (ကိန်းပြည့်)
သုညအပါအ၀င် အပေါင်းကိန်းပြည့်များအားလုံး နှင့် အနှုတ်ကိန်းပြည့်များအားလုံး။
#Prime number (သုဒ္ဓကိန်း
- ထပ်မံခွဲစိပ်၍ မရသောကိန်း) တစ်နှင့် သူကိုယ်တိုင်မှလွဲ၍ တခြား အပေါင်းကိန်းဖြင့်စား၍
မပြတ်သော တစ်ထက်ကြီးသည့်ကိန်း။( 2, 3, 5, 7, 11, 13, 17, etc)
#Composite
number (တစ်ထက်ကြီးသော သုဒ္ဓကိန်းမဟုတ်သည့် ကိန်းမှန်သမျှ) 4, 6, 8, 9 etc
#1 သည်
composite လည်းမဟုတ်၊ prime လည်းမဟုတ်။
#ဂဏန်းသင်္ချာ၏ အခြေခံသီအိုရီ
(The Fundamental Theorem of Arithmetic) “အပေါင်းကိန်းပြည့်တိုင်းကို prime
number များ မှက်ခြင်းဖြင့်ဖော်ပြနိုင်သည်။”
ဥပမာ 7 = 7, 21
= 3 * 7, 30 = 2 * 3 * 5, 100 = 2 *2 * 5 * 5
61 394 323 221
= 3*3*3*7*11*11*37*37*37*53
#စားခြင်းသီအိုရမ်
(Division Theorem) “စားကိန်းနဲ စားလာဒ် မှာက်၊ အကြွင်းနဲ ပါင်း၊ မူလကိန်းပြန်ရ” [စားကိန်းသည်
သုညထက် ကြီးရမည်။]
n = qd + r (
Where 0 ≤ r < d ) [d divisor, q quotient, r
remainder]
အကြွင်းဆိုင်ရာဥပမာ
rem(2716, 10) =
6 (ဆိုလိုတာက 2716 ကို 10 နဲ စား တာ့ 6 ကြွင်း ပါ့။)
အနှုတ်ကိန်းကိုစားလို
ကြွင်းတဲ့ဥပမာ
rem(-11, 7) = 3
Division
Theorem ရဲ့ ညီမျှခြင်းအရ -11 = (-2) * 7 + 3
ဒီနေရာမှာ စိတ်၀င်စားစရာကောင်းတာက
C++, Java, C# မှာရှိတဲ့ % (modulus operator) က -11%7 = -4 လို တညီတညွတ်တည်း ပကြလေရဲ့။
အမှန်တော့ ကိန်းသီအိုရီလည်းမမှား၊ ကွန်ပြူတာတို
programming language တို လည်း မမှားပါဘူး။ modulus နဲ remainder တို ရဲ့ မတူညီတဲ့သဘောသဘာ၀ကို မိတ်ဆွေ
မင်ရတာသာဖြစ်ပါတယ်။ ဒီဆောင်းပါးမှာတော့ သင်္ချာပညာရပ်ဆိုင်ရာတွေ များပြားနေမှာစိုးလို မဆွေးနွေးတော့ပါဘူး။ မိတ်ဆွေတို စိတ်၀င်စားတယ်ဆိုရင်
ကိုယ်တိုင်သာ အသေးစိပ် ဆက်လက်လေ့လာကြပါလို
ပန်ကြားလိုပါတယ်။
#Perfect Number
(ပြီးပြည့်စုံကိန်း) “၁ အပါအ၀င် ကိန်းတခုကို စားလို ပတ်တဲ့ကိန်းအားလုံး ပါင်းလိုက်လို မူလကိန်းပြန်ရရင် အဲဒီကိန်းဟာ ပီးပြည့်စုံကိန်း”။
ဥပမာ 6 ကို 1,
2, 3 တို နဲ စားလို ပတ်တယ်။ ဒါ့အပြင် ၆ = ၁ + ၂ + ၃။ နာက် ဥပမာတခုက 28 ကို 1, 2, 4, 7, 14 တို နဲ စားလို
ပတ်တယ်။၂၈ = ၁ + ၂ + ၄ + ၇ + ၁၄။ ဒါကြောင်
၆ တို ၂၈ တို ဟာ perfect number တွပေါ့။
တခြားဥပမာအနေနဲ ၁၀ တို ၁၂ တို ကျတော့ perfect number မဟုတ်ဘူး။ ဘာလို တုန်းဆိုတော့
၁၀ ကို စားနိုင်တဲ့ကိန်းတွေက ၁ + ၂ + ၅ ပါင်းတော့ ၈ ပဲရတယ်။ ၁၂ ကို စားနိုင်တဲ့ကိန်းတွေက
၁ + ၂ + ၃ + ၄ + ၆ ပါင်းရင် ၁၆ ရမယ်။ မူလကိန်း ပန်မရဘူး။ ဒါကြောင့် ပီးပြည့်စုံသောကိန်း
တွမဟုတ်ဘူး။
BC 300 လာက်ကတည်းက
သင်္ချာပညာရှင်ကြီး ယူကလစ် (Euclid) က စုံ(even)ကိန်း ဖစ်တဲ့ perfect number တွကို စုဆောင်းရှာဖွေခဲ့တယ်။
အဲဒီမှာ မးခွန်းတခု ပါ်လာတော့တာပဲ ။ “ပြီးပြည့်စုံသော မ’ ကိန်း odd perfect number
တွရော ရှိသလား” ဆိုတာပါ။ ယူကလစ်ခေတ်ကနေ အခုနှစ်ပေါင်းနှစ်ထောင် ကျာ်လာတဲ့ ဒီနေ ထက်ထိ
အဲဒီမေးခွန်းရဲ့အဖြေကို မသိသေးပါဘူး။ ကိန်းတန်ဘိုး ပမာဏ ( 10 300) ten to the
power three hundreds အထိ လက်ရှိလေ့လာပြီးသလောက်တော့ ပီးပြည့်စုံတဲ့ မကိန်းကို မတွေ
သးဘူး။ ဒါပေမယ့်လည်း ခက်တာက ဘယ်သူကမှ odd perfect number မရှိဘူးလို သက်သေမပြနိုင်သေးဘူး။
ကဲ မိတ်ဆွေမြင်တဲ့အတိုင်းပါပဲ။
ကျွန်တော်တို Number theory အကြောင်း ဆွးနွေးတာ စာတမျက်နှာတောင်မရှိသေးတဲ့ အချိန်မှာကိုပဲ၊
လူ အသိဉာဏ်ရဲ့ တစ်ဖက်ကမ်း လက်ရှိကွန်ပြူတာတွေရဲ
တွက်ချက်နိုင်မှုစွမ်းရည် (computational power) ရဲ့ ဘာင် အပြင်ဖက်ရောက်သွားပြီ
ဆိုတာတွေ ရမှာပါ။ ဒါကြောင့် Number Theory နဲ
ပတ်သက်ရင် “အမေး နွားကျောင်းသား၊ အဖြေ ဘုရားလောင်း” ဆိုတာလို အလွယ်တကူ မးစရာမေးခွန်းတွေ
အများအပြားရှိနေပေမယ့်လည်း၊ တချို မးခွန်းတွေအတွက်
အဖြေကိုတော့ အားလုံး သဘောပေါက် နားလည်လက်ခံတဲ့ အဆင့်ထိ ရှင်းလင်းတင်ပြဖို ဆိုတာ အလှမ်းေ၀းနေဆဲ
အဆင့်မှာသာ ရှိပါသေးတယ်။
ဘာကြောင့် ကိန်းသီအိုရီကို
လ့လာရတာလဲ
“နေစမ်းပါဦးဗျ။ ဒီ
1, 2, 3, 4 တို ၊ 5, 7, 11, 13 တို ၊ ၁၀ ကို ၃ နဲ စား တစ်ကြွင်း တို ဆိုတာလောက်တော့ တတန်း နှစ်တန်းခလေးတောင်သိသေးတာဗျာ။
ကျုပ်တို လို ဆာ့ဖ်၀ဲသမားတွေက ဘာဖြစ်လို ရးကြီးခွင်ကျယ်လုပ်ပြီး လ့လာနေဖို လိုတာတုန်း။
အဲဒါတွေ လ့လာတော့ လက်တွေ ဘာအကျိုးရှိတုန်း၊ အဲဒါတွေ ဘယ်နေရာမှာ အသုံးချလို ရတုန်း”
လို မးမယ်ဆိုရင် အဖြေက ဒီလိုပါ။
ဒီ Number
Theory ဟာ ခတ်သစ်၀ှက်စာပညာရပ် (modern cryptography) မှာ အဓိကနေရာကပါ၀င်နေတယ်။ အဲဒီ၀ှက်စာပညာရပ်ဆိုတာလည်း
ဒီနေ ခတ် အွန်လိုင်းဆက်သွယ်ရေး( online communication) ရဲ့ အသက်သွေးကြောတမျှ အရေးကြီးပါတယ်။
နိုင်ငံတနိုင်ငံရဲ့ စစ်ရေး စီးပွားရေး နဲ သတင်းထောက်လှမ်းရေး
ဆိုင်ရာအချက်အလက်တွေ၊ နာက်ဆုံးပေါ် စမ်းသပ်တည်ထွင်ဆဲ သိပ္ပံနဲ နည်းပညာပိုင်း ဆိုင်ရာအချက်အလက်တွေ စတဲ့အရေးကြီး
data တွကို ပိုင်ဖက်နိုင်ငံတွေ ရန်လိုတဲ့နိုင်ငံတွေ
အန္တရာယ်ပေးနိုင်တဲ့ အဖွဲ အစည်းတွေရဲ့လက်ကို အလွယ်တကူမရောက်နိုင်အောင်၊ ကမ္ဘာလုံးဆိုင်ရာ
ကုမ္ပဏီတွေ ကာ်ပိုရေးရှင်းကြီးတွေရဲ့ အရေးကြီး အချက်အလက်တွေ အီးမေးလ်တွေ ကိုတတ်နိုင်သမျှ
လုံခြုံအောင်ဆောင်ရွက်ထားဖို စတဲ့ကိစ္စတွေ၊
လူတွေရဲ့ န တဓူ၀ on-line ငွပေးငွေယူကိစ္စတွေဆောင်ရွက်တဲ့အခါ အကြွေး၀ယ်ကဒ် (credit
card) လက်ငင်း၀ယ်ကဒ်(debit card) ဘဏ်စာရင်းနံပါတ်(account number) စတာတွေကို လျှို
၀ှက်လုံခြုံ အာင်လုပ်ဆောင်နိုင်ဖို စတဲ့ကိစ္စတွေမှာ ၀ှက်စာပညာဟာ မရှိမဖြစ်ပဲမဟုတ်ပါလား။
ဟာဒီ အင်တာနက်ကြီးပေါ်က ၀ှက်စာပညာရပ်တွေကိုသာဖယ်ထုတ်လိုက်မယ်ဆိုရင် လူတိုင်းလူတိုင်းရဲ့ဘ၀ဟာ
ပုဂ္ဂိုလ်ရေးလွတ်လပ်ခွင့်တွေ အားလုံးဆုံးရှုံးသွားနိုင်ပြီး၊ နိုင်ငံတိုင်း နိုင်ငံတိုင်းရဲ့
အခြေအနေဟာ ဘးကင်းလုံခြုံမှုမရှိတော့တဲ့ အကာအကွယ်မဲ့ အနေအထားကို ရာက်သွားမှာပဲဖြစ်ပါတယ်။
ကုန်ကုန်ပြောရရင် ဒီNumber Theory ကို အသုံးချထားတဲ့ ၀ှက်စာရေးနည်း ၀ှက်စာပြန်ဖေါ်နည်းတွေဟာ
လူသန်းပေါင်းများစွာရဲ့ အသက်ကို အဆုံးအဖြတ်ပေးခဲ့တဲ့ စစ်ပွဲတွေ အာင်နိုင်ရေးအတွက်မှာတောင်
အချက်အချာနေရာက ပါ၀င်နေခဲ့ ပါ၀င်နေဆဲ နာက်နောင်လည်း ပါ၀င်နေဦးမှာ ဖစ်တယ်ဆိုတာပါပဲ။
ထင်ရှားတဲ့ သက်သေသာဓကအနေနဲ ဒုတိယကမ္ဘာစစ်ကာလတုန်းက
နာဇီဂျာမဏီရဲ့ ရတပ်က စစ်သငေ်္ဘာတွေ ရငုပ်သငေ်္ဘာတွေ အချင်းချင်းပို တဲ့ ၀ှက်စာတွေကို၊
ကွန်ပြူတာသိပ္ပံပညာရပ်ရဲ့ ဖခင်ကြီး ထားရင်း (Alan M. Turing) ဦးဆောင်တဲ့ ဗိတိသျှ
code breaker အဖွဲ က ဖည်နိုင် ဖါ်နိုင်ခဲ့လို သာ အနောက်ဥရောပစစ်မျက်နှာမှာ အင်္ဂလန်က
ဂျာမဏီကို ကြံ့ကြံ့ခံ တားဆီးနိုင်ခဲ့တာပါ။ အကျိုးဆက်အနေနဲ လည်း ဂျာမဏီ စစ်ရှုံးပြီး
မဟာမိတ်တို စစ်အောင်နိုင်ခဲ့တာပဲ။ အဲဒီစစ်ပွဲရဲ့
အနိုင်အရှုံးရလာဒ်ဟာ ကမ္ဘာ့လူသားတွေအပေါ် ဘယ်လောက်ထိ အကျိုးသက်ရောက်မှုရှိခဲ့တယ်ဆိုတာ
သမိုင်းအခြေခံ နည်းနည်းပါးပါးလေ့လာဖူးသူတိုင်း သိကြမယ်ထင်ပါတယ်။
၀ှက်စာပညာရပ်
(cryptography)
၀ှက်စာပညာဆိုတာ တကယ်တော့
လွန်ခဲ့တဲ့ နှစ်ပေါင်း သုံးထောင်ကျော်ကတည်းက စတင်ပေါ်ပေါက်ခဲ့ အတတ်ပညာဆန်တဲ့ အနုပညာတရပ်ပါ။
အခုနောက်ဆုံး ဆယ်စုနှစ် အနည်းငယ်အတွင်းမှာ သီအိုရီကွန်ပြူတာသိပ္ပံရဲ့ အားဖြည့်ပေါင်းစပ်မှုကြောင့်
ပုံသဏန်ရော အနှစ်သာရပါ အများကြီး ပာင်းလဲလာခဲ့ပါပြီ။ ဒါ့အပြင် ဒီ၀ှက်စာပညာရပ်ဟာ သီအိုရီကွန်ပြူတာသိပ္ပံရဲ့
လက်တွေ အသုံးချနယ်ပယ်အတွက် ထင်ရှားတဲ့သက်သေတရပ်လည်းဖြစ်ပါတယ်။
ကဲ ဒီတော့ ပထမဆုံးအနေနဲ ၀ှက်စာရေးနည်းတွေကိုမလေ့လာခင်
၀ှက်စာပညာရပ်မှာသုံးစွဲနေကြ အရေးကြီးတဲ့ စကားလုံးတွေကိုပဲ အရင်ဆုံးပြန်နွှေးလိုက်ကြပါဦးစို
။
Plaintext
message = မ၀ှက်ရ မကွယ်ရ ပုံမဖျက်ရ သးတဲ့ မူရင်းအတိုင်းရှိနေတဲ့ သတင်းစကား။ (စာတတ်တဲ့)
လူတိုင်းဖတ်နိုင်တဲ့ သတင်းအချက်အလက်။
Encrypt /
Encode/ Encipher = အကုန်လုံး ကြိယာပုံစံတွေပါ။ ခုနက plaintext တွကို ၀ှက်စာရေးနည်းတခုခုသုံးပြီး
လျှို ၀ှက်သငေ်္ကတတွေ ကုဒ်တွေ ၀ှက်စာတွေ ဖစ်လာအောင် ပာင်းရေးတာကို ဆိုလိုတာပါ။ အဲဒီလိုရေးပြီးတဲ့အခါ
ခုနက plaintext တွဟာ ခုခါမှာ encrypted message, encoded text, ciphered text စသည်ဖြင့်
အဲဒီလိုခေါ်နိုင်တဲ့ ၀ှက်စာတွေ ဖစ်လာပြီပေါ့။
Decrypt / Decode/
Decipher = ဒါတွေအကုန်လုံးကလည်း ကြိယာပုံစံတွေပါ။ ကွယ်ထား ၀ှက်ထားတဲ့ ကုဒ်သငေ်္ကတတွေ
၀ှက်စာတွေကို မူရင်း plaintext အတိုင်း ပန်ဖြစ်လာအောင် ၀ှက်စာဖြည်နည်း တခုခုကို သုံးပြီး
အဓိပ္ပါယ်ဖေါ်တယ် ပန်ပြောင်းရေးတယ်ပေါ့။ အပေါ်မှာတင်ပြခဲ့သလိုပဲ ဒီနေရာမှာ
Decrypted, Decoded, Deciphered တို ဟာ adjective ပုံစံတွေပါ။
ဒီ Encrytption ရာ
Decryption ရာပါ၀င်တဲ့ ဖစ်စဉ် (process) တွ အားလုံးကို cryptography ၀ှက်စာ(ရေးနည်း/ဖြည်နည်း)ပညာရပ်လို ခါ်တာပါ။
ဒီနေရာမှာ နာမ်
(noun) ပုံသဏ္ဌန်ရှိနေတဲ့ Cipher ဆစ်ဖာ/ဆိုက်ဖာ ဆိုတာ ၀ှက်စာရေးနည်း ၀ှက်စာကိုပြန်ဖြည်နည်းပါ။
အင်္ဂလိပ်လိုက ပိုရှင်းမယ်ထင်ပါတယ်။ “Ciphers are algorithms used to encrypt or
decrypt data.” ပါ့ဗျာ။ အဲဒီလို ၀ှက်စာရေးနည်းတွေကို၊ ရှးရိုးဂန္ထ၀င်နည်း နဲ ခတ်သစ်နည်း ဆိုပြီး ၂-အုပ်စု ခွဲနိုင်ပါတယ်။
ရှေးရိုးစနစ်မှာ
၁. Substitution
ciphers (မူရင်း bit, character, block of data တွကို တခြားမတူညီတဲ့ bit,
character, block of data တွနဲ အစားထိုး လဲလှယ်လိုက်တဲ့နည်း
) နဲ
၂.
Transpositions ciphers (မူရင်း plain text ထဲမှာပါတဲ့ စာလုံး(letter)တွေကို အထားအသိုအသစ်ဖြစ်သွားအောင်
ရွှ (shifted) တဲ့နည်း) ဆိုပြီး ခွဲခြားနိုင်ပါတယ်။
တခါ ခတ်သစ်၀ှက်စာရေးနည်းတွေကိုတော့
၁. သုံးတဲ့ key ပါ်မူတည်တဲ့နည်း
(အဲဒီမှာမှ private key နဲ public key ဆိုပြီး
နှစ်မျိုးထပ်ခွဲပါတယ်) နဲ
၂. ပို တဲ့ data
ပါ်မူတည်တဲ့နည်း (Block cipher နဲ Stream
cipher) ဆိုပြီး ခွဲခြားနိုင်ပါတယ်။ ပုံမှာကြည့်ပါ။
Fig: Types of
classical ciphers and modern ciphers
ဆီဇာရဲ့ ၀ှက်စာ
(Caesar’s Cipher)
သမိုင်းတစ်လျောက်
ရှးအကျဆုံး၀ှက်စာရေးနည်းတွေထဲက တခုကတော့ ရာမဧကရာဇ် ဂျူးလိယက်ဆီဇာ(Julius Caesar) သုံးခဲ့တဲ့နည်းပါ။
သူ ရဲ့စနစ်က အင်္ဂလိပ် အက္ခရာစဉ်အတိုင်း စာလုံးတွေကို သတ်မှတ်ထားတဲ့ နရာ ကိန်းဂဏန်းတန်ဘိုးတခုအတိုင်း
ဘယ်ဖက် သို မဟုတ် ညာဖက်ကို ရွှ လိုက်တာပါ။ ဆိုလိုတာက မူရင်းစာလုံးကို၊ ရွှ လို ရလာတဲ့
စာလုံးနဲ အစားထိုးလိုက်တဲ့အခါ ၀ှက်စာသဘောမျိုးရလာတာပါပဲ။
ဥပမာ မူရင်းစာလုံးက DEMOCRITUS၊ ၀ှက်စာဖြစ်ဖို
ညာဖက်ကိုသုံးပေါင်းထည့်မယ် ညာဖက်ကိုသုံးနေရာရွှေ မယ် ဆိုပါတော့။ ဒါဆိုရင် D
က G ဖစ်သွားမယ်၊ E က H… စသည်ဖြင့် ဖစ်လာမှာပေါ့။ အဲဒီလိုနည်းနဲ DEMOCRITUS ဆိုတဲ့ မူရင်းစာအတွက် GHPRFULWXV ဆိုတဲ့
၀ှက်စာတခု ရလာပါပြီ။ ဘယ်ဖက်ကို ရွှ မယ်ဆိုရင်လည်းရပါတယ်။ ဥပမာဘယ်ဖက်ကို သုံးနေရာရွှေ
မယ်ဆိုပါတော့ ဒါဆိုရင် E က B ဖစ်လာမယ်၊ A က X ဖစ်လာမယ်..စသည်ဖြင့်ပေါ့..ပုံမှာကြည့်လိုက်ပါ။
ပိုရှင်းသွားမယ်ထင်ပါတယ်။
Fig: ဘယ်ဖက်သို သုံးနေရာရွှေ လျှင်ဖြစ်လာမည့် ဆီဇာ၏၀ှက်စာ
ဒါပေမယ့်လည်း ၀ှက်စာတခုရဲ့တန်ဘိုးဟာ
သက်ဆိုင်သူတွေကလွဲရင် တခြား ကြားဖြတ်ဖေါက်ထွင်းခိုးယူသူတွေ အနေနဲ အလွယ်တကူ ပန်ဖြည်နိုင်ခြင်း ရှိမရှိ၊ ၀ှက်စာရဲ့
အဓိပ္ပါယ်ကို ပန်ဖေါ်နိုင်ခြင်း ရှိမရှိဆိုတဲ့ အပေါ် မူတည်ပါတယ်။ ဆီဇာရဲ့၀ှက်စာကတော့
မိတ်ဆွေမြင်တဲ့အတိုင်းပါပဲ။ အများဆုံး ဖစ်နိုင်ချေအဖြေ သို မဟုတ် ရွှ နည်းဟာ ၂၅ မျိုးပဲရှိတဲ့အတွက်
အချိန်နည်းနည်းယူလိုက်မယ်ဆိုရင် ဘယ်သူမဆို အလွယ်တကူ ဖည်နိုင်ပါတယ်။
အစားထိုး၀ှက်စာ
(Substitution Cipher)
ဒီနည်းကတော့ မူရင်းစာလုံးတလုံးချင်းစီကို
ကြိုတင် သတ်မှတ်ထားပြီးဖြစ်တဲ့ တခြား ကျပမ်းစာလုံးတလုံးချင်းစီနဲ အစားထိုးလဲလှယ်တဲ့နည်းပါ။ ဥပမာဗျာ A ဆိုရင် X, B
ဆိုရင် L, C ဆိုရင် S, စသည်ဖြင့် ကိုယ်ကြိုက်သလို သတ်မှတ်ထားလို ရပါတယ်။ ဒါဟာ ဆီဇာရဲ့၀ှက်စာနဲ အဓိကကွာခြားတဲ့အချက်ပါ။ ဆီဇာရဲ့နည်းမှာက စာလုံးတလုံးကို
ကြိုတင်သတ်မှတ်ထားတဲ့အတိုင်းပဲ ပုံသေ လဲလှယ်သွားတာပါ။ ဥပမာ မူရင်းစာလုံးကို တတိယမြောက်စာလုံးနဲ
အစားထိုးမယ်ဆိုရင် A က D ဖစ်လာမယ်။ B က E ဖစ်လာမယ်။ C က F ဖစ်လာမယ်။ စသည်ဖြင့်ပေါ့။
ဒါမှမဟုတ် ပဉ္စမမြောက်စာလုံးနဲ အစားထိုးမယ်ဆိုရင် A က F ဖစ်သွားမယ်။ B က G ဖစ်သွားမယ်။
ဒါပါပဲ။ ဒီအစားထိုး ၀ှက်စာမှာကျတော့ စာလုံးတစ်လုံးချင်းစီအတွက် ကိုယ့်စိတ်ကြိုက် တခြား
ကျပမ်း စာလုံးတလုံးကို သီးသန် သတ်မှတ်ထားတဲ့နည်းပါ။
ဒီနည်းက ဆီဇာနည်းလောက်ဖြည်ရတာမလွယ်ပေမယ့် သင်္ချာပညာရှင်နဲ တွ တာ့လည်း ဖုံးသမျှပေါ်ရ
တာပါပဲ။ ဒီ အစားထိုး၀ှက်စာကို ပန်ဖေါ်ဖို ကြိမ်နှုန်းဆန်းစစ်လေ့လာချက်
(Frequency Analysis) နည်းကို သုံးနိုင်ပါတယ်။ Frequency Analysis ဆိုတဲ့ စကားလုံးအတွက်
ဘာသာပြန်လေးရေးပြထားရုံနဲ တာ့ ဘယ်လိုဖေါ်ပါလိမ်
ဆိုတာ ဘယ်မြင်သာပါ့မလဲဗျာ။ ဒါပေမယ့် မိတ်ဆွေတို ကို သင်္ချာပညာရပ်ဆိုင်ရာတွေနဲ
လည်း မလေးလံစေချင်ဘူး၊ ရှင်းမပြလို လည်း မပြည့်စုံဘူး ဆိုတော့ လက်တွေ ဆန်တဲ့ ဥပမာလေးတခုပေးပါမယ်။
မိတ်ဆွေ ကြိုက်တဲ့ စာတအုပ်ယူလိုက် (တအုပ်လုံးတော့မလိုပါဘူး အခန်းတခန်းစာ ဒါမှမဟုတ်လဲ
စာလေးငါးမျက်နှာစာဆိုရပါပြီ) အဲဒီစာအုပ်မှာ A ဆိုတဲ့စာလုံး စုစုပေါင်း ဘယ်နှစ်လုံးပါသလဲ၊
B ဘယ်နှစ်လုံးပါသလဲ၊ C ဘယ်နှစ်လုံးပါသလဲ စသည်ဖြင့် Z အထိပေါ့ဗျာ ရတွက်ကြည့်ပြီးမှတ်ထားလိုက်။
အခုပြောတဲ့နည်းက manual လုပ်မယ်ဆိုရင်တော့ ခက်ခဲလက်၀င် အချိန်ကုန်ပေမယ့် ကွန်ပြူတာမှာ
ပရိုဂရမ်ရေးပြီးခိုင်းလိုက်ရင်တော့ သိတဲ့အတိုင်း စက္ကန် ပိုင်းပေါ့။ အဲဒီနည်းနဲ မိတ်ဆွေဟာ အကြိမ်အရေအတွက် အများဆုံးပါတဲ့စာလုံးကနေ
အနည်းဆုံးပါတဲ့စာလုံးအထိ၊ A ကနေ Z အထိ စာတလုံးချင်းစီရဲ့ ကြိမ်နှုန်း(Frequency) တွရလာပါပြီ။
ဒါဆိုရှင်းပါပြီ။ ရိုးရိုးစာမှာ E က အကြိမ်အရေအတွက်အများဆုံးပါနေပြီး အစားထိုး၀ှက်စာမှာ
X ဆိုတဲ့စာလုံးက အကြိမ်အရေအတွက် အများဆုံးပါနေတယ်ဆိုပါတော့။ ကဲ ဒါဆိုရင် မိတ်ဆွေဘာလုပ်သင့်တယ်
ထင်ပါသလဲ။ တွ သမျှ X ကို E နဲ အစားထိုးပြီးဖတ်ကြည့်ပေါ့ဗျာ။
ဒါပါပဲ။ ဒီ Frequency Analysis နည်းဟာ အစားထိုး၀ှက်စာတွေဖေါ်တဲ့နေရာမှာ အလွန်ထိရောက်တဲ့
နည်းစနစ်တခုဖြစ်ပါတယ်။
Polyalphabetic
Cipher (စကားစုတစုကို key အဖြစ်သုံးတဲ့ ၀ှက်စာ)
စကားစုတစု စကားလုံးတလုံးကို
လျှို ၀ှက် key အဖြစ်သုံးပြီးရေးတဲ့ ၀ှက်စာရေးနည်းကို၊ ၁၅ ရာစု အလယ်ပိုင်းလောက်တုန်းကတည်းက
စတင်အသုံးပြုခဲ့ပြီး ဒုတိယကမ္ဘာစစ်အတွင်းကဆိုရင် ပိုမိုရှုပ်ထွေးတဲ့ အနစ်ဂမာ
(Enigma) rotar machines တွမှာပါ အသုံးချခဲ့ပါတယ်။
ဒီ Polyalphabetic Cipher နည်းက ၀ှက်စာရေးဖို အတွက် plaintext ရဲ့ အက္ခရာတွေကို ပုံသေရွှေ
တဲ့နည်းမသုံးပဲ၊ အက္ခရာအများကြီးပါ၀င်တဲ့ ကိုယ့်ရဲ့ ကိုယ်ပိုင် လျှို ၀ှက်စကားလုံးတလုံးရဲ့
အထားအသို အနေအထား တန်ဘိုးအတိုင်း လိုအပ်ရင် လိုအပ်သလို ထပ်ကာ ထပ်ကာ ရွှ တဲ့နည်းဖြစ်ပါတယ်။
ဥပမာဗျာ “Meet me at elephant lake” ဆိုတဲ့ plaintext ကို ၀ှက်စာဖြစ်အောင်ရေးချင်တယ်။
၀ှက်စာအတွက်သုံးမယ့် လျှို ၀ှက် ကီး စကားလုံးက ‘SNAKE’ ဆိုပါတော့။ A to Z အက္ခရာစဉ်အတိုင်းဆိုရင်
S က နံပါတ် 19
N က နံပါတ် 14
A က နံပါတ် 1
K က နံပါတ် 11
E က နံပါတ် 5
ဒါဆိုရင် ကျွန်တော်တို
၀ှက်စာဖြစ်အောင်ရေးမယ့် plaintext ရဲ့
• ပထမဆုံးအက္ခရာကို
(ညာဖက်ကိုပေါ့ဗျာ) ၁၉ နရာ ရွှ (M က F ဖစ်လာမယ်)
• ဒုတိယ အက္ခရာကို
၁၄ နရာရွှေ (E က S ဖစ်လာမယ် )
• တတိယ အက္ခရာကို ၁
နရာရွှေ (ဒုတိယ E က F ဖစ်လာမယ်)
• စတုတ္ထ အက္ခရာကို
၁၁ နရာရွှေ (T က E ဖစ်လာမယ်)
• ပဉ္စမ အက္ခရာကို
၅ နရာရွှေ (M က R ဖစ်လာမယ်)။
ပြီးရင် SNAKE ရဲ့
စကားလုံးအစကပြန်စပြီး plaintext ရဲ့ ဆဌမ အက္ခရာကို ၁၉ နရာ၊ သတ္တမ အက္ခရာကို ၁၄ နရာ၊
အဌမအက္ခရာကို ၁ နရာ….စသည့်ဖြင့်
..စသည်ဖြင့် ကျန်တဲ့ plaintext အက္ခရာတွေကို SNAKE အစီအစဉ်အတိုင်း ထပ်ကာ ထပ်ကာ ရွှ
သွားရင် ပုံမှာပြထားသလို “Meet me at elephant lake” ဆိုတဲ့ plaintext အတွက် “FSFE
RX OU PQXDILSM ZBVJ” ဆိုတဲ့ ၀ှက်စာတခု ရလာပြီပေါ့။
Fig:
Polyalphabetic Cipher နည်းဖြင့်ရေးသော ၀ှက်စာ
ကဲမိတ်ဆွေတို မင်တဲ့အတိုင်းပါပဲ။
၀ှက်စာအနေနဲ ပာင်းရေးလိုက်တော့ E ဆိုတဲ့ plaintext အက္ခရာတလုံးတည်းကိုပဲ S, F, X,
P, J စသည်ဖြင့် မတူညီတဲ့ ciphered text တွ အဖြစ်တွေ ရမှာပါ။ ဒါကြောင့် ဒီ
Polyalphabetic Cipher နည်းမှာတော့ Frequency Analysis နည်းဟာ လုံး၀နီးပါး အသုံးမ၀င်တဲ့
အခြေအနေကို ဆိုက်ရောက်သွားတာ တွ ရမှာဖြစ်ပါတယ်။ plaintext ထဲမှာ E ကို ခာက်ကြိမ်အထိ
သုံးထားပေးမယ့် ၀ှက်စာမှာတော့ အဲဒီလောက် အကြိမ်ရေများတဲ့ ဘယ်အက္ခရာကိုမှ တွ ရမှာမဟုတ်ပါဘူး။
နာက်ဆုံး ၀ှက်စာမှာ တူညီတဲ့ အပူးအက္ခရာတွေ ပါလာစေဦးတော့ မူရင်း plaintext မှာ အဲဒီလိုအပူးအက္ခရာ
ဘယ်လိုမှ ပါနိုင်ဖို အကြောင်းရှိမှာမဟုတ်ပါဘူး။ ကိုယ့်ရဲ့ ၀ှက်စာကီးစကားလုံးက ရှည်ရင်ရှည်သလို
၀ှက်စာကိုပြန်ဖေါ်ရတာ ခက်ခဲမှာဖြစ်ပါတယ်။ ဒါဆိုရင်မိတ်ဆွေကလည်း “ဒီ နည်းက ဖည်လို မရဘူးလားဗျ”
မးမှာပဲ။ အဖြေကလည်း “ဖြည်နည်းရှိပါတယ်” ဆိုတာပါပဲ။ ဒါပေမယ့်လည်း အဆင့် ၇-ဆင့် ပါတဲ့
အဲဒီဖြည်နည်းကို အချက်အလက်တွေ များပြားရှုပ်ထွေးသွားမှာစိုးတဲ့အတွက် ဒီဆောင်းပါးမှာ
မတင်ပြတော့ပါဘူး။ ၀ီကီပီးဒီးယား မှာပဲဖြစ်ဖြစ် တခြားပညာရေးဆိုင်ရာ ဆိုဒ်တွေမှာပဲဖြစ်ဖြစ်
ကျွန်တော့ရဲ့ ဒီဆောင်းပါးထက် အများကြီး ပိုမိုကောင်းမွန်တဲ့၊ အသေးစိပ်ရှင်းလင်းထားတဲ့
အချက်အလက်တွေ မိတ်ဆွေတို အလွယ်တကူတွေ နိုင်ပါတယ်။
စိတ်၀င်စားရင် ကိုယ်တိုင်သာ ဆက်လက်လေ့လာလိုက်ကြပါလို လးလေးစားစား ပန်ကြားလိုပါတယ်။ “ဒီလူကကွာ ဟိုဟာလည်း
ကိုယ်တိုင် ဆက်လေ့လာလိုက်ပါ၊ ဒီဟာလည်း ကိုယ်တိုင်ဆက်လက်လေ့လာလိုက်ပါနဲ ..ဘာမှလည်း ပည့်စုံအောင်
ဆုံးခန်းတိုင်အောင် သသေချာချာ မရှင်းလင်းဘူး ..မဆွေးနွေးဘူး” လို များ မိတ်ဆွေတို ထင်မလားမသိဘူး။ တကယ်တန်းကျတော့ ဘယ်ပညာရပ်မှာမဆို
စိတ်၀င်တစား ကိုယ်တိုင်လေ့လာ သင်ယူတာကသာ တတ်မြောက် ကျွမ်းကျင် ပိုင်နိုင်တဲ့ အခြေအနေအဆင့်အတန်းကို
ရာက်ရှိစေမှာမို လို ပါ။ ပီးတော့လည်း “A good learner never waits to be taught” ဆိုတဲ့စကားလိုပေါ့။
“တကယ့် လ့လာသင်ယူသူကောင်းတရောက်ဟာ သူများသင်ပေးတာကို ဘယ်တော့မှ စာင့်နေမှာမဟုတ်ဘူး”
ဆိုတာလိုပါပဲ။ လမ်းစလေးတွေ ရှိနေရုံ တွ နရုံ နဲ
ကိုယ့်ရဲ့ သိလိုစိတ် တတ်လိုစိတ်ဟာ ကိုယ့်ကို ကျယ်ပြန် တဲ့ ပညာရပ်နယ်ပယ်ရှိရာအထိ
ရာက်မှန်းမသိရောက်သွားအောင် ဆွဲခေါ်သွားနိုင်ပါတယ်။ အဲဒီလို ဖစ်စေချင်လို ပါ။
ကဲ…ခုလောလောဆယ် ယာယီအနှစ်ချုပ်ရရင် အထက်မှာ ကျွန်တော်တို ဆွးနွေးခဲ့တဲ့ ရှးရိုးဂန္ထ၀င်၀ှက်စာရေးနည်းတွေကတော့
သိပ်အားမကိုးလောက်သေးတာ တွ ရပါတယ်။ ဘယ်နည်းမဆို အလွယ်တကူမဟုတ်တောင်မှ ဖည်နည်းက ရှိနေတာကိုး။
၀ှက်စာဆိုတာကလည်း သူများ အလွယ်တကူ ဖည်လို ရတယ် ဖါ်လို ရတယ်ဆိုရင် ဘယ်အားကိုးလောက်တော့မတုန်း။
ဒါကြောင့်လည်း နယ်ပယ်အသီးသီးက ပညာရှင်တွေဟာ ၀ှက်စာရေးနည်းနဲ ပတ်သက်ပြီး ပိုမိုတိုးတက်အောင်
မပြတ်ကြံဆောင်ခဲ့ကြပါတယ်။ ခုဆက်လက်ပြီးတော့ ရှးရိုး၀ှက်စာရေးနည်းတွေ နဲ ခတ်သစ်၀ှက်စာရေးနည်းတွေရဲ့ ကြားကာလလောက်မှာ ပါ်ပေါက်ခဲ့တဲ့
အတော်အတန် ခိုင်မာမှု လုံခြုံမှုရှိလာပြီဖြစ်တဲ့ ၀ှက်စာရေးနည်းတရပ်ကို ဆက်လက်လေ့လာကြပါစို
။
တကြိမ်ရေးနည်း၀ှက်စာ
(One-Time Pad)
ဒီလိုနဲ ပဲ ၁၉၂၀
လာက်မှာ အမေရိကန် စီးပွားရေးသမားတဦးဖြစ်တဲ့ ဂဲလ်ဘတ် ဆဲန်ဖို ဗာနမ် (Gilbert Sandford Vernam) က ဒီနေ ခတ်မှာ
one-time pad လို ထင်ရှားလူသိများတဲ့ ၀ှက်စာရေးနည်းတရပ်ကို
ဖါ်ထုတ်တင်ပြခဲ့ပါတယ်။ သူ ရဲ့ အဲဒီ one-time pad ၀ှက်စာစနစ်မှာ
-plaintext
message ကို binary string တစ်ခု M အဖြစ် ကိုယ်စားပြုဖေါ်ပြလိုက်တယ်။
-ပြီးရင် အဲဒီ M
နဲ sizeခြင်း အလျားခြင်း lengthခြင်း တူညီတဲ့
နာက်ထပ် ကျပမ်း binary string ကီးတခု K ကို သတ်မှတ်လိုက်တယ်။
-ပြီးရင် ခုနက M
ကို K နဲ XOR (Exclusive OR - တူရင်ဇီးရိုး
မတူရင်၀မ်း) operation လုပ်လိုက်တယ်။
-အဲဒီအခါမှာ ၀ှက်စာ
(ciphered text) C ကို ရရှိလာပါတယ်။ ပုံမှာကြည့်ပါ။
M : 1 1 1 0 1 0
1 1 0 0 0 1
K : 0 1 1 0 1 1
1 0 1 0 1 1
--------------------------------
C : 1 0 0 0 0 1
0 1 1 0 1 0
(FIG:
Encryption by XOR-ing M with K to get C)
ဒီနေရာမှာ ကျွန်တော်တို
အနေနဲ သတင်းစကားကို လက်ခံမယ့်သူဟာ ယုံကြည်စိတ်ချရတဲ့သူလို ယူဆပြီးဖြစ်တဲ့အတွက် လျှို ၀ှက်ကီး K ကိုလည်း ကြိုတင်
မျှေ၀ပေးထားပြီးဖြစ်တယ်လို ယူဆထားပါတယ်။ ဒါကြောင့် လက်ခံသူအနေနဲ ရလာတဲ့ ၀ှက်စာ C ကို၊ သူ ကိုမျှေ၀ပေးထားပြီးသားကီး
K နဲ နာက်ထပ် XOR operation တခုထပ်လုပ်လိုက်ရင်
မူရင်းသတင်းစကား M ကို အလွယ်တကူ ပန်ရနိုင်ပါတယ်။ ပုံမှာကြည့်ပါဦး။
C : 1 0 0 0 0 1
0 1 1 0 1 0
K : 0 1 1 0 1 1
1 0 1 0 1 1
--------------------------------
M : 1 1 1 0 1 0
1 1 0 0 0 1
(FIG:
Decryption by XOR-ing C with K to get M)
ဒီ one-time pad
ရဲ့ အားသာချက်ကတော့ မိတ်ဆွေတို မင်တဲ့အတိုင်းပဲ ကြားဖြတ်ဖေါက်ထွင်းခိုးယူသူအနေနဲ Key - K ကို သိမထားဘူးဆိုရင် ၀ှက်စာဟာ သူ အတွက်
လုံး၀အဓိပ္ပါယ်မရှိတဲ့ အဓိပ္ပါယ်ဖေါ်မရတဲ့ ကျပမ်းစာသားကြီးတစ်ခုသာ ဖစ်နေမှာပါ။ ဘာလို
တုန်းဆိုတော့ ဘယ်လို bit string တစ်ခုကိုမဆို တခြားကျပမ်း bit string တစ်ခုနဲ XOR လုပ်ထားရင် ရလာတဲ့ရလာဒ်ကလည်း ကျပမ်း bit
string တစ်ခုသာဖြစ်နေမှာမို လို ပါပဲ။ ဒီ ၀ှက်စာကို ဖည်ဖို လည်း ဘယ်လိုမှ ခန် မှန်းဖို
မဖြစ်နိုင်ပါဘူး။ဘာလို တုန်းဆိုတော့ ဘယ်လို ကျပမ်း binary string ကို မဆို Key အဖြစ်သုံးနိုင်တာကိုး။
ဒီအချက်တွေကြောင့်ပဲ
one-time pad စနစ်ဟာ ဘယ်လိုမှ မချိုးဖျက်နိုင်တဲ့ ၀ှက်စာစနစ်တခုအဖြစ် သတ်မှတ်ခြင်းခံခဲ့ရပါတယ်။
ဒါပေမယ့် မှန်မှန်ကန်ကန် သုံးမှသာ မချိုးဖျက်နိုင်တာဖြစ်ပြီး သူ ရဲ့ နာမည်
one-time pad ဆိုတဲ့အတိုင်း ၀ှက်စာတခုအတွက် Key တစ်ခုကို တစ်ကြိမ်တိတိသာသုံးခွင့်ရှိတာဖြစ်ပါတယ်။
တစ်ကြိမ်ထက်ပိုသုံးမိရင်တော့ one-time pad ၀ှက်စာတွေဟာ လုံခြုံမှုမရှိတော့ပဲ သူ ရဲ့
ခိုင်ခံ့မှုစည်းလည်း ကျိုးပျက်သွားပါပြီ။ ဘာလို တုန်းဆိုတော့ ကီးကို တကြိမ်ထက်ပိုသုံးမိရင်
၀ှက်စာမှာ သုံးတဲ့ Key – K ကို ဖါက်ထွင်းခိုးယူသူတွေအနေနဲ အလွယ်တကူ တွက်ချက်ရယူနိုင်စွမ်း ရှိသွားလို ပါ့။
တွက်နည်းကလည်း အလွန်လွယ်ကူတဲ့ ကိန်းသီအိုရီရဲ့ အခြေခံ မှာပါတဲ့ အကြီးဆုံးဘုံဆခွဲကိန်း
( Greatest Common Divisor) ရှာတဲ့နည်းအတိုင်း တွက်ချက်ရှာဖွေလိုက်တာပါပဲ။ ဆိုလိုတာကဗျာ
C1 = M1 * K
C2 = M2 * K ဆိုရင်
C1 ရာ C2 မှာ ဘုံပါနေတဲ့
K ကို အလွယ်တကူ ရှာနိုင်သလိုမျိုးပေါ့။ အဲဒီတော့ အနှစ်ချုပ်လိုက်ရင်
-သတင်းပို မယ့်သူနဲ လက်ခံမယ့်သူဟာ လျှို ၀ှက်ကီးကို ကြိုတင်သတ်မှတ်
ညှိနှိုင်းထားဖို အသိပေးထားဖို လိုတဲ့အချက်။
[သတင်းအချက်အလက်တခုအတွက် ကီးတခု အမြဲကြိုတင်ပေးပို ထားဖို ဆိုတာ လက်တွေ မှာ အတော်လေး
ခက်ခဲပါတယ်။]
-key ဟာ ပို မယ့်
message နဲ size တူရမယ့်အချက် ။ [အကျိုးဆက်အနေနဲ သတင်းစကား ရှည်ရှည်ပို ချင်တဲ့အခါ key ရွးချယ်ရတာနဲ တရောက်ကိုတရောက် ကြိုတင်ပြီး ကီးပေးပို ရတာ ခက်ခဲလာပါတယ်။]
-တစ်ကြိမ်သုံးပြီးသားကီးကို
နာက်ထပ်ဘယ်တော့မှ ပန်သုံးမရတော့တဲ့အချက်။
စတာတွေဟာ
one-time pad ရဲ့ အဓိကအားနည်းချက်တွေပဲဖြစ်ပါတယ်။
ကွန်ပြူတာသိပ္ပံ
ကိန်းသီအိုရီနှင့် ၀ှက်စာပညာ (အပိုင်း-၂)
ခေတ်သစ်၀ှက်စာစနစ်များ
ခေတ်သစ်၀ှက်စာပညာရပ်မှာ
သူတို ရဲ့ လျှို ၀ှက်ကီး key အသုံးပြုပုံအပေါ် မူတည်ပြီးတော့ အဓိကအုပ်စုကြီးသုံးစု
ခွဲထားပါတယ်။
1. Symmetric
Encryption ၀ှက်စာရေးဖို အတွက်ရော ၀ှက်စာကိုဖြည်ဖို အတွက်ပါ တူညီတဲ့ Key တခုတည်းကိုပဲ
သုံးတယ်။ ဆိုလိုတာက shared-key, secret-key နဲ
private-key အားလုံးအတွက် တူညီတဲ့ Key တခုတည်းကိုပဲ အသုံးပြုတဲ့ စနစ်မျိုးကိုခေါ်တာ။
ဥပမာအနေနဲ ကတော့ မိတ်ဆွေတို လ့လာခဲ့တဲ့
one-time pad လို စနစ်မျိုးမှာ encrypt လုပ်ဖို ရာ decrypt လုပ်ဖို ပါ တူညီတဲ့ ကျပမ်း
binary string key တခုတည်းကိုပဲ သုံးစွဲသလိုမျိုးပေါ့။
2. Asymmetric
Encryption ၀ှက်စာရေးဖို အတွက်က key တခု၊ ၀ှက်စာကိုဖြည်ဖို အတွက်က တခြားသီးသန် key တခု၊ အဲဒီလို မတူညီတဲ့ Key တွကိုသုံးတယ်ဆိုရင်
Asymmetric Encryption(public-key) စနစ်ဖြစ်တယ်။ အဲဒီလို မတူညီတဲ့ key တွကို
public-key နဲ private-key လို ခါ်တယ်။ ဒီအတွက်
ဥပမာတွေကတော့ ကျွန်တော်တို ဆက်လက်လေ့လာမယ့်
ခတ်သစ်၀ှက်စာရေးနည်း တွမှာ အများအပြား တွ ရမှာဖြစ်ပါတယ်။
3. Hash
Function ၀ှက်စာရေးဖို အတွက်ရော ဖည်ဖို အတွက်ပါ ဘာ key ကိုမှ မသုံးဘူး။ ၀ှက်စာရဖို
အတွက် သူ ရဲ့ သီးသန် လုပ်ဆောင်ချက်
function ကိုသာသုံးတယ်။ ဒီ Hash Function ကို message digest (MD) သို မဟုတ်
one-way encryption, one-way bash function စသည်ဖြင့့်လည်းခေါ်တယ်။
ဒီဆောင်းပါးမှာတော့
ကျွန်တော်တို ဟာ မာက်များလှစွာသော ခတ်သစ်၀ှက်စာရေးနည်းတွေထဲကမှ ထင်ရှားတဲ့ တချို ကိုပဲ
အကြမ်းဖျဉ်းလောက် ဆွးနွေးတင်ပြမှာဖြစ်ပါတယ်။
Advanced
Encryption Standard (AES)
AES ဟာ
Symmetric-key encryption စနစ်တခုဖြစ်ပြီး အမေရိကန်အစိုးရကိုယ်တိုင် လက်ခံကျင့်သုံးနေတဲ့
၀ှက်စာရေးနညး်စနစ်တခုဖြစ်ပါတယ်။ AES ဟာ ထပ်တလဲလဲ လည်ပတ်သုံးစွဲရတဲ့ iterated block
cipher အမျိုးအစားပါ။ ဆိုလိုတာက ကြိုတင်သတ်မှတ်ထားပြီးဖြစ်တဲ့ တူညီတဲ့ လုပ်ဆောင်မှုအဆင့်တွေကိုပဲ
ကြိမ်ဖန်များစွာ ထပ်မံလုပ်ဆောင်စေတဲ့ နည်းစနစ်ကို အသုံးပြုထားတာပါ။ သူ အသုံးပြုတဲ့
data ရဲ့ အပိုင်းတခုချင်းစီ (block) ရဲ့ အရွယ်အစား (size) ဟာ ၁၂၈-bit ရှိပါတယ်။ သုံးမယ့်
key ရဲ့ size အနေနဲ ကတော့ ၁၂၈-bit၊ ၁၉၂-bit
နဲ ၂၅၆-bit ဆိုပြီး ရှိပါတယ်။ AES-128,
AES-192 နဲ AES-256 လို အသီးသီးခေါ်တာပေါ့ဗျာ။ သူ ရဲ့ လုပ်ဆောင်ပုံကို ပိုမိုသဘောပေါက်နားလည်ဖို AES ရဲ့ Pseudo Code ကို နည်းနည်းလောက် လ့လာလိုက်ပါဦး။
Cipher(byte
in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)] )
BEGIN
byte state[4, Nb]
state = in
AddRoundKey(state, w)
FOR round = 1 step 1 to Nr-1
SubBytes(state)
ShiftRows(state)
MixColumns(state)
AddRoundKey(state, w+round*Nb)
ENDFOR
SubBytes(state)
ShiftRows(state)
AddRoundKey(state, w+Nr*Nb)
out = state
END
Data Encryption
Standard (DES)
DES ဟာ အမေရိကန်ဗဟိုအစိုးရရဲ့
သတင်းအချက်အလက် သုံးစွဲမှုဆိုင်ရာ စံ (Federal Information Processing Standard -
FIPS) အမှတ် ၄၆ - ၃ ရဲ့ အမည်ပဲဖြစ်ပါတယ်။ အဲဒီစံမှာ data အချက်အလက်တွေကို ဘယ်လို
encrypt လုပ်ရမယ်ဆိုတဲ့ Data Encrytion Algorithm (DEA) တခုကို တခါတည်း သတ်မှတ်ပေးထားပြီး
ဖစ်ပါတယ်။ အဲဒီ DEA ဟာ Symmetric ၀ှက်စာအမျိုးအစားတခုဖြစ်ပြီး မူလရည်ရွယ်ချက်အနေနဲ hardware တွပေါ်မှာ encrypt လုပ်ဖို ဒီဇိုင်းဆွဲဖန်တီးထားတာဖြစ်ပါတယ်။ ဆိုလိုတာက ကွန်ပြူတာသုံးစွဲသူတရောက်အနေနဲ သူ စိတ်ကြိုက် data တွကို hard-disk ပါ်မှာ
encrypt လုပ်ဖို အတွက်လည်း ဒီ စနစ်ကို သုံးနိုင်တယ်လို ပာချင်တာပါ။ ဒါကို
single-user-encryption လို ခါ်တာပေါ့ဗျာ။
Digital
Signature Algorithm
DSA ဟာ အမေရိကန်ဗဟိုအစိုးရရဲ့
သတင်းအချက်အလက် သုံးစွဲမှုဆိုင်ရာ စံ (U.S Federal Information Processing
Standard - FIPS) အမှတ် 186 အနေနဲ သုံးစွဲနေတဲ့
Digital Signature Standard (DSS) တခု ဖစ်ပါတယ်။ ဒီစနစ်ဟာ အစိုးရတရပ်ရဲ့ ပထမဆုံး တရား၀င်အသိအမှတ်ပြု
သုံးစွဲခံရတဲ့ Ditital Signature အစီအစဉ် စနစ် တခုလည်းဖြစ်ပါတယ်။ Digital
Signature Algorithm မှာ Asymmetric cryptography နည်းစနစ်ကို အသုံးပြုထားပြီး၊
signature တစ်ခုရဲ့ လုံခြုံမှုဆိုင်ရာ ဂုဏ်သတ္တိတွေကို အရေးပုံသဏ္ဌာန်ထက် ဒစ်ဂျစ်တယ်ပုံသဏ္ဌာန်အဖြစ်သာ
ပုံဖေါ်တဲ့နည်းစနစ်ဖြစ်ပါတယ်။ ဒီစနစ်မှာ ပးပို သူက သတင်းစကားကို တရား၀င်ဖြစ်အောင်လက်မှတ်ထိုးဖို (sign လုပ်ဖို ) private key ကို အသုံးပြုပြီး၊
လက်ခံရရှိသူက အဲဒီလက်မှတ်ထိုးမှန်မမှန် စစ်ဆေးဖို ကိုတော့ public key ကို အသုံးပြုပါတယ်။
ဒီ DS algorithm ဟာ လုံခြုံမှု မင့်မြင့်မားမားလိုအပ်တဲ့ အီးမေးလ် ပို ဆာင်ဆက်သွယ်မှုတွေအတွက်
မရှိမဖြစ် နည်းပညာတရပ်ပေါ့။
ဒါ့အပြင် တခြားထင်ရှားအသုံးများတဲ့
RC4, RC5, RC6 Algorithms, Message Digest (One-Way Bash) Functions, Message
Digest 5 (MD5), Secure Hashing Algorithm (SHA1, SHA2 နဲ လက်ရှိ သုတေသနပြုဆောင်ရွက်နေဆဲ SHA3) စတာတွေ အပြင်
Secure Shell(SS) စတဲ့ ၀ှက်စာရေးနည်း၊ ၀ှက်စာပို ဆာင်နည်း စနစ်တွေ အများအပြားကျန်ပါသေးတယ်။
ဒါပေမယ့် ဒီဆောင်းပါးမှာတော့ ကျွန်တော်တို ဟာ private key နဲ public key သဘောတရားကို တတ်နိုင်သမျှနားလည်သဘောပေါက်စေဖို
နဲ ကိန်းသီအိုရီ၊ အကြွင်းသင်္ချာနဲ သုဒ္ဓကိန်းတွေကို
ခတ်သစ်၀ှက်စာရေးနည်းတွေမှာ ဘယ်လိုအသုံးချတယ်ဆိုတဲ့ အပိုင်းကိုသာ ဦးစားပေး ဆက်လက်ဆွေးနွေးသွားမှာဖြစ်ပါတယ်။
Public-key
cryptography နှင့် စိတ်ကူးပြဿနာ
ဆိုပါစို အ ကနေ ဘီ ကို ငွထည့်ထားတဲ့ သတ္တာတလုံး ပို ချင်တယ်။
လမ်းမှာ ဘယ်သူကမှ ဖွင့်ပြီးမယူစေချင်ဘူး။ ရှင်းပါတယ် သတ္တာကို သာ့ခတ်ပြီးပို ပါ့။ ဒီနေရာမှာ
ကြားဖြတ်နဲနဲပြောရရင်တော့ သာ့ဆိုတာလည်း Number Theory ကို အခြေခံထားတာပဲဗျ။ သာ့တံ(key)
တစ်ခုတည်းနဲ သာ့ခလောက်(lock) နှစ်လုံးကို ဖွင့်လို
မရတဲ့ အကြောင်းက၊ သာ့တစ်လုံးစီကို သီးသန် ဖစ်တဲ့ မတူညီတဲ့ နံပါတ်တစ်ခုစီပေါ်မှာ အခြေခံတည်ဆောက်ထားတာကိုး။
ဆိုလိုတာက သာ့ အရဲ့ နံပါတ်ကို 30 လို သတ်မှတ်ထားရင် ကိန်းသီအိုရီအရ 30 ရဖို 2*3*5 မှာက်မှရမယ်။ အထားအသိုတော့ ပာင်းနိုင်တာပေါ့ဗျာ။
ဒါကတော့ မိတ်ဆွေတို အနေနဲ အာ်တို အန်ဒါစတွတ်ပါ။
တခြား prime number အတွဲမြှောက်ခြင်းနဲ လုံး၀
၃၀ မရနိုင်ဘူး။ အဲဒီလို နည်းနဲ သာ့တလုံးချင်းစီကို
လုံး၀သီးသန် (unique - ယူးနစ်ခ်) ဖစ်အောင် တည်ဆောက်ထားတာပါ။
ကဲကဲ… ပို ချင်တဲ့ပစ္စည်း သတ္တာထဲထည့်၊ သာ့ခတ်၊
ပီးရင်ပို ချင်တဲ့သူဆီကိုပို မယ့်အကြောင်းပြန်ကောက်ရရင်၊
ဒီနေရာမှာ ပို မယ့်အေ နဲ လက်ခံမယ့်ဘီ နှစ်ရောက်လုံးဆီမှာ
မိတ္တူပွားထားတဲ့ သာ့တူရှိရင်တော့ အဆင်ပြေတာပေါ့။ အ က သူ သာ့နဲ သူခတ် ဘီ ကို ပို ။
ဘီကလည်း အကပေးထားတဲ့ သူ မှာရှိတဲ့ သာ့တူနဲ ဖွင့်။ အိုကေ။ ဒါပေမယ့် ပဿနာက အ နဲ ဘီ က အဲဒီလို shared key စနစ်ကို မသုံးဘူးဆိုရင်ဘယ်လိုလုပ်မလဲ။
ဆိုလိုတာက အက သူ သာ့မိတ္တူ ဘီကို ကြိုတင်ပေးမထားဘူး။ သတ္တာကို သာ့ခတ်ပြီး ဘီကို ပို
လိုက်တယ်။ ဘီမှာ ဖွင့်စရာ သာ့မရှိဘူး။ သာ့ခတ်ထားတဲ့ သတ္တာအရင်ပို ပီးမှ သာ့ကို ဒီအတိုင်း သပ်သပ်ပို ဆိုလို လည်းမဖြစ်ပြန်ဘူး။ ရွာလည် တိုင်ပတ် နတဲ့
ဒီ သာ့ ပဿနာကို ဟာဒီလို ဖရှင်းနိုင်ပါတယ်။
• အ က ပို မယ့်သေတ္တာကို
သူ သာ့နဲ သူခတ်။ ဘီ ကို ပို ။
• ဘီက သူ ဆီရောက်လာတဲ
သတ္တာကို တခြား သူ ကိုယ်ပိုင်သော့ နဲ ထပ်ခတ်။
(သေတ္တာက သာ့ နှစ်လုံး ခတ်လို ရတယ်ပေါ့ဗျာ။) ပီးရင် အ ဆီကို ပန်ပို ။
• အက သူ ဆီပြန်ရောက်လာတဲ့
(သော့နှစ်လုံး ခတ်ထားတဲ့) သတ္တာ က သူ ခတ်ထားတဲ့ သာ့ကို ဖွင့်ပြီး (ဖြုတ်ပြီး) ဘီ ကို
ပန်ပို ။
• ဘီက သူခတ်ထားတဲ့
သာ့ကို သူ ဘာသာသူ ပန်ဖွင့်။ အထဲက လိုတဲ့ပစ္စည်းကိုယူ အိုကေပေါ့။ ပုံကိုကြည့်လိုက်ဗျာ။
ပိုရှင်းသွားမယ်ထင်ပါတယ်။
Diffie-Hellman
Protocol
တကယ်တန်းကျတော့ ကျွန်တော်တို
ပို ရမှာက ရုပ်၀တ္ထု ပစ္စည်းတွေဖြစ်တဲ့ သတ္တာတို
ဘာတို မဟုတ်ပဲ၊ ကွန်ပြူတာကွန်ယက်တွေပေါ်မှာ data အချက်အလက်တွေ (bit stream
or signal) ပဲ ပို ရမှာကိုး။ အဲဒီလိုပို တဲ့အခါမှာဆိုရင် ကျွန်တော်တို အထက်မှာ ဆွးနွေးခဲ့တဲ့ ပို ဆာင်ဆက်သွယ်ရေးပုံစံ
(protocol) ကို ဘယ်လို အကောင်အထည်ဖေါ်ကြမလဲ။ အဲဒီမေးခွန်းရဲ့အဖြေနဲ ပါတ်သက်ပြီး ပဿနာဖြေရှင်းပုံ
နည်းလမ်းအဆင့်ဆင့်ကို၊ ၁၉၇၆ ခုနှစ်မှာ Whitfield Diffie နဲ Martin Hellman ဆိုတဲ့ ပုဂ္ဂိုလ်နှစ်ဦးက ပထမဆုံး
စတင်ဆွေးနွေးတင်ပြခဲ့ပါတယ်။ သူတို နှစ်ဦးကို ဂုဏ်ပြုတဲ့အနေနဲ အဲဒီ နည်းစနစ်ကို Diffie-Hellman Protocol လို ခါ်ပါတယ်။
ဒါပေမယ့်လည်း ၂၀၀၂ ခုနှစ်မှာ Hellman က အဲဒီ algorithm ကို “Diffie–Hellman–Merkle
key exchange” လို ခါ်ဖို အကြံပြုတင်ပြခဲ့ပါတယ်။
ဘာလို လဲဆိုတော့ အဲဒီ public key cryptography နည်းစနစ်ကို တည်ထွင်ရာမှာ Ralph
Merkle ဆိုတဲ့ ပုဂ္ဂိုလ်ရဲ့ ပူးပေါင်းပါ၀င်ဆောင်ရွက်မှုတွေ အများအပြားရှိခဲ့လို ဖစ်တယ်လို ဆိုပါတယ်။
Diffie-Hellman
Protocol ၏ လုပ်ဆောင်ပုံအဆင့်များ
1. အေ နဲ ဘီ ဟာ prime number p = 23 နဲ အခြေ base g = 5 ကို သုံးစွဲဖို
သဘောတူထားကြတယ်။
2. အေ ဟာ သူ ရဲ့ ကိုယ်ပိုင် လျှို ၀ှက် ကိန်းပြည့်
a = 6 ကို သုံးဖို ရွးချယ်လိုက်တယ်။ ပီးတော့
ဘီ ဆီကို A = ga mod p ကို ပို လိုက်တယ်။
· A = 56 mod 23
· A = 15,625 mod 23
· A = 8
3. ဘီ ကတော့ သူ ရဲ့ ကိုယ်ပိုင် လျှို ၀ှက် ကိန်းပြည့်အဖြစ် b = 15 ကို ရွးချယ်လိုက်တယ်။ ပီးတော့ အ ဆီကို B = gb mod p ကိုပို လိုက်တယ်။
· B = 515 mod 23
· B = 30,517,578,125 mod 23
· B = 19
4. အေ ဟာ သူတို ရဲ့ လျှို ၀ှက်သတင်းစကား s ကို ဒီလိုတွက်ယူလိုက်တယ်။
o s = B a mod p
o s = 196 mod 23
o s = 47,045,881 mod 23
o s = 2
ဘီ ကလည်း လျှို ၀ှက်သတင်းစကား
s ကို ဒီလိုတွက်ယူတယ်။
o s = A b mod p
o s = 815 mod 23
o s = 35,184,372,088,832 mod 23
o s = 2
1. ကဲမိတ်ဆွေ မင်တဲ့အတိုင်းပါပဲ။ အ နဲ ဘီ ဟာ သူတို ရဲ့ လျှို ၀ှက်ချက် s = 2ကို နှစ်ရောက်လုံး မျှေ၀သုံးစွဲနိုင်တဲ့ အဆင့်ကိုရောက်နေပါပြီ။
ဒါဟာ ဘာလို တုန်းဆိုတော့ 6*15 နဲ 15*6 နဲ ဟာ အတူတူပဲဖြစ်လို ပါ့။ ဒါကြောင့် နှစ်ရောက်စလုံး (အေ
နဲ ဘီ) ရဲ့ ကိုယ်ပိုင် လျှို ၀ှက်ကိန်းပြည့်တွေကို
သိထားတဲ့ သူကပဲ လျှို ၀ှက်သတင်းစကား s ကို အာက်ပါအတိုင်း တွက်ယူနိုင်မှာဖြစ်ပါတယ်။
[နှစ်ရောက်လုံးရဲ့ လျှို ၀ှက်ကိန်းတွေကို သိနိုင်ဖို ဆိုတာ တကယ်တော့ မလွယ်ပါဘူး။]
· s = 56*15 mod 23
· s = 515*6 mod 23
· s = 590 mod 23
· s =807,793,566,946,316,088,741,610,050,849,573,099,185,363,389,551,639,556,884,765,625
mod 23
· s = 2
ခုဆွေးနွေးခဲ့တဲ့
Diffie-Hellman စနစ်ဟာ ပးပို သူနဲ လက်ခံသူ
အကြား key လဲလှယ်ဖို အတွက် ရိုးရှင်းတဲ့စနစ်တခုဖြစ်ပါတယ်။ ဒါပေမယ့်လည်း လက်တွေ သုံးစွဲတဲ့အခါ ရှုပ်ထွေးမှုတွေ ရှိနေဆဲပဲဖြစ်ပါတယ်။
ကျွန်တော်တို တကယ်တန်းလိုချင်တာက ပးပို သူနဲ
လက်ခံသူကြား message တွ အကြိမ်အရေအတွက် နည်းနိုင်သမျှ နည်းနည်းပဲ အပြန်အလှန်သွားတာမျိုးကိုလိုချင်တာပါ။
ဆိုလိုတာက ပးပို သူနဲ လက်ခံသူ နှစ်ရောက်လုံးက
public key တွ private key တွ ဖန်တီးနေစရာမလိုပဲ၊ တရောက်ကပဲ လိုအပ်တဲ့ public key နဲ private key တွကို ဖန်တီးလိုက်ရုံနဲ လုံလောက်အဆင်ပြေစေမယ့် အခြေအနေမျိုးကို ဆိုလိုတာဖြစ်ပါတယ်။
RSA Encryption
Algorithm
အထက်မှာတင်ပြခဲ့တဲ့
Diffie-Hellman Protocol ရဲ့ လိုအပ်ချက်တွေကိုအခြေခံပြီး၊ ၁၉၇၇ ခုနှစ်မှာ မက်ဆာချူးဆက်နည်းပညာသိပ္ပံက
ကျာင်းသားတွေဖြစ်တဲ့ Ronald Rivest, Adi Shamir နဲ Leonard Adleman တို က အကြွင်းသင်္ချာနဲ အခြေခံ ကိန်းသီအိုရီကို အသုံးချပြီး အလွန်လုံခြုံမှုမြင့်မားတဲ့
၀ှက်စာစနစ်တရပ်ကို “A Method for Obtaining Digital Signatures and Public-Key
Cryptosystems” ဆိုတဲ့ စာတမ်းမှာ ဖါ်ထုတ်တင်ပြခဲ့ကြပါတယ်။ သူတို ရဲ့ နာမည်တွေကို စွဲယူဂုဏ်ပြုတဲ့အနေနဲ အဲဒီနည်းစနစ်ကို RSA နည်းလို ခါ်ပါတယ်။
ဒီ RSA ရဲ့ ရှးရိုးစနစ်တွေထက်
သိသိသာသာ အားသာတဲ့အချက်က “ပေးပို သူနဲ လက်ခံသူတို
ဟာ နှစ်ဦးသဘောတူ လျှို ၀ှက်ကီး (secret key) တခုသတ်မှတ်ဖို အတွက် တရောက်နဲ တရောက် ကြိုတင်တွေ ဆုံ ညှိနှိုင်းဖို မလိုတဲ့အချက်ပဲဖြစ်တယ်”။
လက်ခံမယ့်သူမှာ လုံခြုံအောင် ထိန်းသိမ်းထားတဲ့ လျှို ၀ှက်ကီး နှစ်ခုလုံးရှိထားတဲ့အပြင်၊
လူအများဆီကို တတ်နိုင်သမျှ ပျံ့နှံ အာင်ဖြန် ၀နိုင်တဲ့ public key ပါရှိထားတယ်။ သတင်းစကား
ပးပို မယ့်သူဟာ လက်ခံမယ့်သူကဖြန် ၀ပေးထားတဲ့ public key ကို အသုံးပြုပြီး၊ သူပေးပို
ချင်တဲ့ message ကို encrypt လုပ်ပြီး ပို လိုက်တယ်။ လက်ခံရရှိတဲ့သူက သူ ရဲ့
secret private key နဲ ပန်ပြီး decrypt လုပ်ပြီး
ဖတ်တယ်ပေါ့။ RSA algorithm ကို လက်တွေ သဘောပေါက်နားလည်စေဖို
အတွက် အာက်ပါ ဥပမာကို လ့လာလိုက်ပါဦး။
RSA Algorithm ၏
လုပ်ဆောင်ပုံအဆင့်ဆင့်
o P = 61 (first
prime number, destroy this after computing E and D)
o Q = 53
(second prime number, destroy this after computing E and D)
o PQ = 3233
(modulus, give this to others)
o E = 17
(public exponent, give this to others)
o D = 2753
(private exponent, keep this secret!)
Your public
key is (E, PQ)
Your private
key is D.
The
encryption function is: Encrypt (T) = (T^E) mod PQ
= (T^17) mod
3233
(Where T is
plaintext message)
The
decryption function is: Decrypt (C) = (C^D) mod PQ
= (C^2753) mod
3233
(Where C is
ciphered text)
To encrypt the
plaintext value 123, do this:
Encrypt (123) =
(123^17) mod 3233
=337587917446653715596592958817679803
mod 3233
=855
To decrypt the
ciphered text value 855, do this:
Decrypt (855) =
(855^2753) mod 3233
= …………………(very large number) mod 3233
= 123
တကယ်တော့ ဒီ RSA
နည်းဟာ အလွန်ကြီးမားတဲ့ သုဒ္ဓကိန်းနှစ်ခု တွက်ချက်ခြင်းကို အခြေခံပြီး တည်ထွင်ဖန်တီးထားတာပါ။
သူ ရဲ့ ခိုင်မာမှုနဲ ပတ်သက်လို ကတော့ “အလွန်ကြီးမားတဲ့ကိန်းတွေကို ဆခွဲကိန်းခွဲဖို ဆိုတာ ခက်ခဲတယ်။ အဲဒီလို ဆခွဲကိန်းခွဲဖို ခက်ခဲသလောက်
ဒီ နည်းဟာလည်း ဖည်ဖို (break လုပ်ဖို ၊ ချိုးဖျက်ဖို
) ခက်ခဲတယ်” ဆိုတဲ့ မရေရာတဲ့ သီအိုရီအဆိုတခုအပေါ်ကို အခြေခံထားတာဖြစ်တဲ့အတွက်၊ RSA
နည်းစနစ်ဟာ ဆယ်စုနှစ်နဲ ချီပြီး ၀ဖန်တိုက်ခိုက်ခံခဲ့ရပါတယ်။ ဒါပေမယ့်လည်း ဒီနေ ထက်ထိ
RSA ရဲ့ သိသာထင်ရှားတဲ့ ဘယ်လိုအားနည်းချက်ကို ဘယ်သူကမှ ရှာမတွေ ခဲ့ကြသေးပါဘူး။ ဒါကြောင့်
ခုအခါမှာတော့ ဒီ RSA နည်းနဲ သူ ရဲ့မျိုးကွဲ
နည်းစနစ်တွေဟာ ခတ်သစ် e-commerce စနစ်ကြီးတစ်ခုလုံးမှာ အကျယ်ပြန် ဆုံးအသုံးပြုတဲ့ ၀ှက်စာစနစ်တွေဖြစ်နေပါပြီ။
ဒါကြောင့် ဒီ RSA encryption စနစ်ဟာ စံ စနစ်တခုအဖြစ် တရား၀င် သတ်မှတ်မခံရပေမယ့်လည်း၊
လက်တွေ လာကမှာတော့ ၀ှက်စာရေးနည်းစံ (de-facto encryption standard) တခုသဖွယ် လူတိုင်းသုံးစွဲနေကြပါပြီ။
ဒါဆိုရင် မိတ်ဆွေက
“ဒီ RSA နည်းက ဘယ်လောက်ထိ လုံခြုံစိတ်ချရလို လဲ” ဆိုတဲ့ မးခွန်းကို မးချင်မှာပါ။ တကယ်တော့
ဒီမေးခွန်းဟာ RSA စတင်တည်ထွင်ခဲ့တဲ့အချိန်ကနေ အခု နှစ်ပေါင်း ၃၀ ကျာ်လာတဲ့ ဒီနေ ထက်ထိ
အဖြေမရှိသေးတဲ့ အဖြေမသိသေးတဲ့ မးခွန်းတခုအဖြစ်ပဲ ရှိနေပါသေးတယ်။ မိတ်ဆွေမေးခွန်းရဲ့အဖြေအတွက်
ကျွန်တော်တို ဆက်လက်လေ့လာ သုတေသနလုပ်ရပါဦးမယ်။
ဒါပေမယ့် အလွန်ရှင်းလင်းတဲ့ အချက်တချက်ရှိနေပါတယ်။ ဒါဟာဘာလဲဆိုတော့ “ဒီနေ အခါမှာ ဘတ်ဂျက်အလုံအလောက်၊
အခြေခံနဲ အဆင့်မြင့်အဆောက်အဦ
(infrastructure) အပြည့်အစုံ နဲ ၊ state-sponsored-hackers(အစိုးရကိုယ်တိုင် ပးကျွေး
လက်သပ်မွေးပြီး စနစ်တကျဖွဲ စည်းပေးထားတဲ့ ကွန်ပြူတာအဖျက်သမား) တွဟာ ‘ငါနဲ မတူ ငါ့ရန်သူ’
သီအိုရီကို ကိုင်စွဲပြီး သူတို ပိုင်ဖက်တွေရဲ့ လုံခြုံရေးကို ဖျက်ဆီးဖို ချိုးဖျက်ဖို ၊ သူတို နဲ အမြင်မတူသူတွေရဲ့ လျှို
၀ှက် သတင်းအချက်အလက်တွေကို ဖါက်ထွင်းခိုးယူဖို နည်းမျိုးစုံနဲ မပြတ်ကြံစည် လုပ်ဆောင်နေကြတယ်” ဆိုတဲ့ အချက်ပဲဖြစ်ပါတယ်။
သူတို ဟာ Ciphertext only attck, Adaptive chosen-plaintext attack,
Known-plaintext attack, Chosen-Key attack, Rubber hose attack, Timing attack စတဲ့
နည်းပေါင်းစုံနဲ ပိုင်ဖက်အဖွဲ အစည်း လူပုဂ္ဂိုလ်တွေရဲ့
အီးမေးလ်တွေ ကွန်ပြူတာတွေ ဆာဗာတွေကို တိုက်ခိုက်ထိုးဖေါက်နေတဲ့အပြင်၊ code
breaking နည်းစနစ်တွေဖြစ်တဲ့ Burce-Force attack, Meet-In-The-Middle attack,
Social Engineering နည်းပညာကိုသုံးထားတဲ့ Trickery and Deceit နည်းစနစ်တွေအပြင်
One-Time pad နဲ Frequency Analysis နည်းစနစ်တွေကိုပါ
အသုံးပြုပြီး ပိုင်ဖက်တွေကို ဒုက္ခပေးဖို ကြံစည်နေကြပါတယ်။ (အဲဒီတိုက်ခိုက်ပုံတွေကို
နာက်လ ဆာင်းပါးမှာ သီးသန် ဆွးနွေးတင်ပြပါမယ်။) ကဲ..ဒါဆိုရင် မိတ်ဆွေတို ဖက်ကရော အဲဒီ state-sponsored-hacker တွရဲ့ ရန်ကို
ခုခံကာကွယ်တားဆီးဖို ဘယ်လို algorithm တွ ၊
ဘယ်လို security policy တွ၊ ဘယ်လိုနည်းစနစ်အသစ်တွေနဲ ပင်ဆင်ထားပါသလဲ။ “ထားပါဗျာ ဒီကောင်တွေကို ဂရုမစိုက်ပါဘူး။
လူဆိုးနဲ လူကောင်းရဲ တိုက်ပွဲမှာ နာက်ဆုံးတော့
လူကောင်းကသာ အနိုင်ရမှာ ဆိုတဲ့ လာကပါလတရားကို ယုံကြည်မှုမပျောက်သေးတဲ့အတွက် ကျုပ်တို
ကတော့ သိပ်ပူမနေပါဘူး” လို များ ဆိုလေမလား မိတ်ဆွေတို ရ။ အင်း..ခက်တာက
ကြားကာလမှာ ‘ရွှေဘ’ ကတော့ အလူးအလဲပဲဗျို ။
ရွှင်လန်းချမ်းမြေ့ပါစေ။
Kyaw Khaing Soe
(infoTherapy-2013)
REFERENCES:
1. Chapter 14
Number Theory, “Mathematics for Computer Science” by Prof. Albert R. Meyer
(Massachusetts Institute of Technology) revised May 9, 2010
2. Chapter 15
Derandomization / cryptography double feature, Chapter 16 Private-key
cryptography, Chapter 17 Public-key cryptography, “Great Ideas in Theoretical
Computer Science” By Prof. Scott Aaronson (Massachusetts Institute of
Technology)
3. CEHv7, Module
18, Cryptography
4. “Journey
into Cryptography” 11-Video Series From Khan Academy
5. Various
related articles from “Wikipedia, the free encyclopedia”
မှတ်ချက်။ ၂၀၁၃
March နှင့် April လထုတ် ကွန်ပြူတာဂျာနယ် တွင်ဖေါ်ပြပြီးသော ဆာင်းပါးများကို ပန်လည်တင်ပြခြင်းဖြစ်ပါသည်။
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.