ကြ်န္ေတာ္တုိ ့ဟာ ကိန္းဂဏန္းေတြကိုတြက္ခ်က္ရာမွာတစ္ခါနဲ ့လြယ္လြယ္ေလးတြက္လို ့ရသလို
ခက္ခက္ခဲခဲတြက္ယူရတဲ့အခါေတြလည္းရွိပါတယ္
အဲဒါေၾကာင့္မို ့ကိန္းဂဏန္းဆိုင္ရာသင္ရိုး ေခၚ နာရီသင္ရိုး ဆိုတာေပၚေပါက္လာပါတယ္
ဥပမာေျပာရရင္ ၄၆ mod ၁၂ ကုိ ရွာခ်င္ရင္ ကြ်န္ေတာ္တို ့ အလ်ား ၄၆ ရွိတဲ့ ၾကုိးတစ္ေခ်ာင္းကုိအရင္ယူရပါမယ္
ျပီးေတာ့နာရီလက္ တံ ၁၂ ယူနစ္အတုိင္း ပတ္လိုက္ရပါမယ္ အဲဒီနည္းကုိေတာ့ modulist လုိ ့ေခၚပါတယ္
ၾကဳိးရဲ ့အဆုံးမွာေတာ့အေျဖ ရွိပါမယ္
အကယ္လုိ ့ကြ်န္ေတာ္တုိ ့ ၄၆ mod ၁၂ လုိ ့သာ ဆုိရင္ သူရဲ ့အေျဖက ၁၇ ပါ
လြယ္လြယ္ေလးပါပဲ။ ဒၤီအလုပ္ကုိ စဖို ့အတြက္ မူလ အရင္းအျမစ္အေနနဲ ့ ႏွစ္ထပ္ကိန္းရင္း ၁၇ ကုိ စ၇ွာပါမယ္။
၃ ရပါတယ္
ထပ္ကိန္းေတြအမ်ဴိးမ်ဴိးတင္တဲ့အခါမွာ
နာ၇ီလက္တံတေလ်ာက္မွာ အေျဖေတြထြက္လာတာေတြ ့ရမွာပါ
၃ ကေတာ့ generator အျဖစ္ အသုံးမ်ားျကပါတယ္ ။ တကယ္လိုု ့၃ အေပၚမွာ ဘယ္ထပ္ကိန္းေတြပဲ တင္တင္
အေျဖကေတာ့ ကိန္းျပည့္ ၀ နဲ ့၁၇ ျကားမွာဘဲ တူညီစြာ သြားေနမွာပါ။
ယခုဆုိရင္ေတာ့ ေျပာင္းျပန္သာတြက္ရမယ္ဆုိရင္ အလြန္ခက္မွာပါ
၁၂ လုိ ့သာ ေပးထားရင္ ၃ ေပၚမွာ ထပ္ကိန္းေတြတင္သြားရမွာပါ
အဲဒါကုိေတာ့ discrete logarithm problem လုိ ့ေခၚပါတယ္
ယခုေတာ့ ကြ်န္ေတာ္တုိ ့မွာ one way function နဲ ့လုပ္ေနတာပါ
တြက္ဖုိ ့လြယ္ေပမယ့္ ေျပာင္းျပန္သာ တြက္ရမယ္ဆုိရင္ေတာ့ ေတာ္ေတာ္ခက္မွာပါ
၁၂ လုိ ့ေပးထားရင္ ၃ ရဲ ့ထပ္ကိန္းကုိ ျပန္ရွာဖုိ ့ကေတာ့ မလြယ္လွပါဘူး
ဘယ္ေလာက္ေတာင္ခက္သလဲဆိုရင္..
ဂဏန္းေသးတာေတြက တြက္ဖုိ ့လြယ္ေပမယ့္ prime modulist ေတြသာသုံးထားရင္ေတာ့ ဂဏန္းေတြ ရာေပါင္းမ်ားစြာထိရွည္လ်ားေနမွာပါ
လက္ေတြ ့မွာတြက္ဖုိ ့ေတာ့ မလြယ္လွပါဘူး
တကယ္လုိ႕ မင္းက တြက္ခ်က္ရာမွာအရမ္းေတာ္ေနတယ္ဆုိရင္ေတာင္မွ ဒီဟာေတြကုိ ေျဖရွင္းဖုိ ့
နွစ္ေပါင္းမ်ားစြာ အခ်ိန္ယူရမွာပါ
ဒါေျကာင့္မုိ ့one way function ရဲ ့လုပ္ေဆာင္နုိင္စြမ္းက သူကုိ ေျပာင္းျပန္ျပန္တြက္နုိင္ဖုိ ့လုိအပ္တဲ့ အခ်ိန္ေပၚမွာပဲ မူတည္ေနပါတယ္