နံပါတ်သီအိုရီနှင့် cryptography တွင် fermat ၏သီအိုရီကိုအဓိကထောက်လှမ်းရေးတွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ အခြေခံအယူအဆတစ်ခုမှာ - တစ်ခုကိန်းတစ်ခုလျှင် သည်အဓိကနံပါတ်တစ်ဖြစ်သည်။ နှင့် နှင့်နှစ် ဦး နှစ်ဖက်ယှဉ်ပြိုင်ကိန်းနှင့်အတူ , ကျေနပ်သင့်ပါတယ် ။ ဤအင်္ဂါရပ်ကို အခြေခံ. ကျွန်ုပ်တို့သည်လျင်မြန်စွာဖြစ်နိုင်ခြေရှိသောအဓိကနံပါတ်ကိုစမ်းသပ်ခြင်း algorithm ကိုတည်ဆောက်နိုင်သည်။
GMP (GNU Multiple Precision Commitication Library) သည်ကြီးမားသောကိန်းဂဏန်းများကိုပြုပြင်ရန်အထူးပြုသည့်စွမ်းဆောင်ရည်မြင့်မားသောသင်္ချာတွက်ချက်မှုဆိုင်ရာစာကြည့်တိုက်ဖြစ်သည်။ PHP တွင် GMP extension ကိုတိုးမြှင့်ပြီးနောက် developer များသည်၎င်းတို့ပေးသည့်လုပ်ငန်းများကို သုံး. မြှင့်တင်ခြင်း, မွမ်းမံခြင်းလုပ်ငန်းများ,
Linux System တွင် GMP extension ကို install လုပ်ရန်အောက်ပါ command ကိုသုံးနိုင်သည်။
sudo apt-get install php-gmp
Windows တွင် Extension = PHP_GMP.DLL PHP.INI ဖိုင်တွင် PHP_GMP.DLL နှင့် 0 န်ဆောင်မှုကိုပြန်လည်စတင်ပါ။
အောက်တွင်ဖော်ပြထားသော PHP နှင့် GMP အပေါ် အခြေခံ. fermat test function ကိုအသုံးပြုသည်။ ၎င်းသည်ကြီးမားသောနံပါတ်များသည်အဓိကနံပါတ်တစ်ခု၏ဖြစ်နိုင်ခြေကိုဆုံးဖြတ်ရန်အသုံးပြုသည်။
function fachest ($ n, $ k) { လျှင် ($ == 2) လျှင် စစ်မှန်ပါလိမ့်မည် // 2 သည်အဓိကနံပါတ်ဖြစ်သည်။ IF ($ n <2 || $ n% 2 == 0) လျှင် တုံ့ပြန်ပါ။ // (2) ထက်နည်းသောနံပါတ်များသည်အဓိကနံပါတ်များမဟုတ်ပါ} အတွက် ($ i = 0; $ i <$ ++; $ i ++) $ a = gmp_random_range (2, $ n - 2); // အကွာအဝေးတွင်ကျပန်းနံပါတ်များကို $ r = gmp_powm ($ a, $ n - 1, $ n); // ^ (n-1) mod n တွက်ချက် if (GMP_CMP ($ R, 1)! = 0) { တုံ့ပြန်ပါ။ // fermat onorem အခြေအနေများနှင့်မတွေ့ဆုံပါ} } စစ်မှန်ပါလိမ့်မည် // စာမေးပွဲများစွာကိုပြည့်မီခြင်း,
ဤလုပ်ဆောင်ချက်တွင် Parameter $ n သည်တရားစီရင်ရန်လိုအပ်သည့်ကြီးမားသောကိန်းတစ်ခုဖြစ်ပြီး $ K သည် ကျပန်းစမ်းသပ်မှုများဖြစ်သည်။ ရလဒ်များ၏တိကျမှန်ကန်မှုကိုပိုမိုမြင့်မားလေလေ။
လုပ်ဆောင်ချက်၏အမှန်တကယ်အကျိုးသက်ရောက်မှုကိုအောက်ပါကုဒ်များဖြင့်စစ်ဆေးနိုင်သည်။
$ n = gmp_init ("123456789098765732121"); // စာမေးပွဲနံပါတ် $ k = 10; // စမ်းသပ်မှု 10 ခုကိုလုပ်ဆောင်သည် $ ရလဒ် = fermattest ($ n, $ k); လျှင် ($ ရလဒ်) { echo "ဒါနဲ့ပတ်သက်ပြီးချုပ်"; } အခြား Echo "Non-Prime", }
အထက်ဖော်ပြပါဥပမာတွင်ကျွန်ုပ်တို့သည်စမ်းသပ်ခြင်းအတွက်ပိုမိုကြီးမားသောနံပါတ်ကိုရွေးချယ်သည်။ Ferma Test ၏သဘောသဘာဝပေါ် မူတည်. စမ်းသပ်မှုများစွာသည်အခြေအနေများနှင့်ကိုက်ညီပါကနံပါတ်ကို "prime" ဟုသတ်မှတ်နိုင်သည်။
PHP မှ GMP တိုးချဲ့မှုမှတစ်ဆင့် developer များသည် Fermat ၏ Theorem ၏အဓိကထောက်လှမ်းရေး algorithm ကိုလျင်မြန်စွာအကောင်အထည်ဖော်နိုင်သည်။ ဤနည်းလမ်းသည် Encryption system များတွင်ကြီးမားသောနံပါတ်စိစစ်ခြင်းကဲ့သို့သောကြီးမားသောနံပါတ်များကိုထိရောက်စွာစစ်ဆေးရန်လိုအပ်သည့် application scarios များအတွက်အလွန်သင့်လျော်သည်။
GMP ချဲ့ထွင်မှုစွမ်းရည်သည်ထိုထက်မကပါ။ Fermat Test အပြင်၎င်းသည်သင်္ချာ, အနှုတ်, မြှောက်ခြင်း, ကွဲပြားခြင်း, ၎င်းသည် PHP သည်ကြီးမားသောသင်္ချာဆိုင်ရာပြ problems နာများကိုကိုင်တွယ်ရန် PHP အတွက်မရှိမဖြစ်လိုအပ်သောကိရိယာတစ်ခုဖြစ်သည်။