ကွမ်တမ်လွန် ကွမ်တမ် ကုဒ်ဝှက်စနစ် အယ်ဂိုရီသမ် Kyber ကို အကောင်အထည်ဖော်ရာတွင် အားနည်းချက်

ကွမ်တမ်ကွန်ပျူတာပေါ်တွင် brute force ကိုခံနိုင်ရည်ရှိသော cryptographic algorithms ၏ပြိုင်ဆိုင်မှုကိုအနိုင်ရခဲ့သော Kyber encryption algorithm ၏အကောင်အထည်ဖော်မှုတွင်၊ side-channel တိုက်ခိုက်မှုများသည် လျှို့ဝှက်သော့များပြန်လည်ဖန်တီးနိုင်စေမည့် အားနည်းချက်တစ်ခုကို ဖော်ထုတ်တွေ့ရှိခဲ့ပြီး၊ တိုက်ခိုက်သူမှ ပေးဆောင်သော စာဝှက်စာသား။ အဆိုပါပြဿနာသည် CRYSTALS-Kyber KEM သော့တွဲချိတ်မှုယန္တရားနှင့် Signal messenger တွင်အသုံးပြုထားသော pqcrypto စာကြည့်တိုက်များအပါအဝင် Kyber ပံ့ပိုးကူညီမှုဖြင့် ပြင်ပကဝှက်စာဝှက်ထားသောစာကြည့်တိုက်များ နှစ်ခုလုံးကို သက်ရောက်မှုရှိသည်။

ကုဒ်အမည် KyberSlash ကို လက်ခံရရှိသည့် အားနည်းချက်၏ အနှစ်သာရမှာ “t = (((t < 1) + KYBER_Q/2)/KYBER_Q) & 1;” ဟူ၍ မက်ဆေ့ချ်ကို ကုဒ်ပြောင်းသည့် လုပ်ငန်းစဉ်တွင် အသုံးပြုထားသည်။ အမြတ်ဝေစုတွင် အမျိုးအစား “နှစ်ဆ” ဖြင့် လျှို့ဝှက်တန်ဖိုး “t” ပါ၀င်ပြီး ပိုင်းခြားမှုသည် လူသိများသော အများသူငှာတန်ဖိုး KYBER_Q ဖြစ်သည်။ ပြဿနာမှာ ဌာနခွဲတစ်ခု၏လုပ်ဆောင်မှုအချိန်သည် မတည်မြဲသောကြောင့်ဖြစ်ပြီး မတူညီသောပတ်ဝန်းကျင်များတွင် ပိုင်းခြားမှုအတွက်လုပ်ဆောင်သော CPU သံသရာအရေအတွက်သည် input data ပေါ်တွင်မူတည်ပါသည်။ ထို့ကြောင့် လည်ပတ်ချိန်အတွင်း အပြောင်းအလဲများကို အခြေခံ၍ ပိုင်းခြားရာတွင် အသုံးပြုသည့် ဒေတာ၏ သဘောသဘာဝကို စိတ်ကူးတစ်ခု ရနိုင်သည်။

cryptography နယ်ပယ်တွင် လူသိများသော ကျွမ်းကျင်သူ Daniel J. Bernstein သည် တိုက်ခိုက်မှုကို လက်တွေ့တွင် လုပ်ဆောင်နိုင်ကြောင်း သက်သေပြချက်တစ်ခုအား ပြင်ဆင်နိုင်ခဲ့သည်။ ပြုလုပ်ခဲ့သည့် စမ်းသပ်မှု သုံးခုအနက် နှစ်ခုတွင် Raspberry Pi 2 ဘုတ်ပေါ်တွင် ကုဒ်ကို အသုံးပြုသောအခါ၊ ဒေတာကုဒ်ပြောင်းသည့်အချိန်တိုင်းတာမှုများအပေါ် အခြေခံ၍ Kyber-512 သီးသန့်ကီးကို လုံးလုံးပြန်လည်ဖန်တီးနိုင်ခဲ့သည်။ နည်းလမ်းကို Kyber-768 နှင့် Kyber-1024 သော့များအတွက်လည်း အဆင်ပြေအောင် ပြုလုပ်နိုင်သည်။ တိုက်ခိုက်မှုတစ်ခုကို အောင်မြင်စွာဆောင်ရွက်နိုင်ရန်၊ တိုက်ခိုက်သူမှသတ်မှတ်ထားသော ciphertext ကို တူညီသောသော့အတွဲကိုအသုံးပြု၍ လုပ်ဆောင်ရန်နှင့် လုပ်ဆောင်ချက်၏လုပ်ဆောင်ချိန်ကို တိကျစွာတိုင်းတာနိုင်စေရန် လိုအပ်ပါသည်။

အခြားသော ပေါက်ကြားမှု (KyberSlash2) ကို အချို့သော စာကြည့်တိုက်များတွင် ရှာဖွေတွေ့ရှိခဲ့ပြီး၊ ကွဲပြားမှုကို လုပ်ဆောင်သည့်အခါ လျှို့ဝှက်တန်ဖိုးကို အသုံးပြုခြင်းကြောင့်လည်း ဖြစ်ပေါ်သည်။ ပထမရွေးချယ်မှုမှ ကွဲပြားမှုများသည် ကုဒ်ဝှက်ခြင်းအဆင့်တွင် (poly_compress နှင့် polyvec_compress လုပ်ဆောင်ချက်များတွင်) မှ ခေါ်ဆိုမှုသို့ ဆင်းသက်လာပြီး ကုဒ်ကုဒ်ရေးခြင်းတွင် မဟုတ်ပါ။ သို့သော်၊ ciphertext ၏ထွက်ရှိမှုကိုလျှို့ဝှက်ဟုယူဆသည့်ပြန်လည်ကုဒ်ဝှက်ခြင်းလုပ်ဆောင်မှုများတွင်လုပ်ထုံးလုပ်နည်းကိုအသုံးပြုသည့်ကိစ္စများတွင်သာဒုတိယရွေးချယ်မှုသည်တိုက်ခိုက်မှုအတွက်အသုံးဝင်နိုင်သည်။

အားနည်းချက်ကို စာကြည့်တိုက်များတွင် ပြင်ဆင်ပြီးဖြစ်သည်-

  • zig/lib/std/crypto/kyber_d00.zig (ဒီဇင်ဘာ ၂၂ ရက်)၊
  • pq-crystals/kyber/ref (ဒီဇင်ဘာ ၃၀)၊
  • symbolicsoft/kyber-k2so (ဒီဇင်ဘာ ၁၉ ရက်)၊
  • cloudflare/circl (ဇန်နဝါရီ ၈)၊
  • aws/aws-lc/crypto/kyber (ဇန်နဝါရီ ၄)၊
  • liboqs/src/kem/kyber (ဇန်နဝါရီ ၈ ရက်)။

အားနည်းချက်ကြောင့် စာကြည့်တိုက်များသည် အစပိုင်းတွင် ထိခိုက်ခြင်းမရှိပါ-

  • boringssl/crypto/kyber၊
  • filippo.io/mlkem768၊
  • formosa-crypto/libjade/tree/main/src/crypto_kem၊
  • kyber/common/amd64/avx2၊
  • formosa-crypto/libjade/tree/main/src/crypto_kem/kyber/common/amd64/ref၊
  • pq-crystals/kyber/avx2၊
  • pqclean/crypto_kem/kyber*/avx2။

အားနည်းချက်ကို စာကြည့်တိုက်များတွင် မပြင်ဆင်ရသေးပါ-

  • antontutoveanu/crystals-kyber-javascript၊
  • Argyle-Software/kyber၊
  • debian/src/liboqs/unstable/src/kem/kyber၊
  • kudelskisecurity/ crystals-go၊
  • mupq/pqm4/crypto_kem/kyber* (ဒီဇင်ဘာ 20 တွင်၊ အားနည်းချက် ဗားရှင်း 1 ကိုသာ ပြင်ဆင်ခဲ့သည်)၊
  • PQClean/PQClean/crypto_kem/kyber*/aarch64၊
  • PQClean/PQClean/crypto_kem/kyber*/clean၊
  • randombit/botan (ဒီဇင်ဘာ 20 တွင်၊ အားနည်းချက် 1 ခုကိုသာ ပြင်ဆင်ခဲ့သည်)၊
  • rustpq/pqcrypto/pqcrypto-kyber (ပြင်ဆင်မှုကို ဇန်နဝါရီ ၅ ရက်က libsignal တွင် ထည့်သွင်းခဲ့သော်လည်း အားနည်းချက်ကို pqcrypto-kyber ကိုယ်တိုင် မပြုပြင်ရသေးပါ)။

source: opennet.ru

မှတ်ချက် Add