Persistent Fault Analysis Against sm4 Implementations in Libraries Crypto++ and gmssl
C. S-BOX BILAN SM4 BILAN IJRO ETILISHGA QARSHI QAYTA KO‘RIB KETISH PFA
Download 1.24 Mb.
|
Persistent Fault Analysis Against SM4 Implementations in Libraries
- Bu sahifa navigatsiya:
- 3-qadam: Raqib bu uchlikni tekshiradi. Agar Pj, Cj, Cjr (j ∈ {0, 1, .., n}) uchlik mavjud boʻlsa, Cj bir xil boʻladi. 32-raunddagi operatsiya AOK qilingan xatoga togri keladi.
- SM4 T-jadval bilan amalga oshirilganda, biz yuqoridagi ikkita muammoni hal qilish uchun joylashishni aniqlash algoritmini taqdim etamiz (batafsil malumot uchun IV bolimga qarang).
C. S-BOX BILAN SM4 BILAN IJRO ETILISHGA QARSHI QAYTA KO‘RIB KETISH PFA
Bizning PFA 7 bosqichni o'z ichiga oladi: dastlabki ikki bosqichda shifrlangan matnlarni onlayn yig'ish va boshqa bosqichlarda shifrlash kalitini oflayn rejimda chiqarish. 1-bosqich: To'g'ri shifrlangan matnlarni oling: Raqib tasodifiy ravishda Pj j 0, 1, ba'zi ochiq matnlarni yaratadi. . . , n , har bir ochiq matnni alohida shifrlaydi va tegishli to'g'ri shifrlangan matnni Cj j 0, 1, yozib oladi. . . , n , bu erda n - ochiq matnlar soni bu shifrlash kalitini tiklash uchun etarli. 2-bosqich: Xatoni kiriting va noto'g'ri shifrlangan matnlarni oling: 1-qadam: Dushman shifrlash tizimini qayta ishga tushirayotganda S-boxda bir baytli nosozlikni kiritadi. 2-qadam: Raqib to'plamdagi har bir ochiq matnni shifrlaydi va tegishli noto'g'ri shifrlangan matnlarni r Cj j 0, 1, to'playdi. . . , n. 3-qadam: Raqib bu uchlikni tekshiradi. Agar Pj, Cj, Cjr (j ∈ {0, 1, .., n}) uchlik mavjud boʻlsa, Cj bir xil boʻladi. 32-raunddagi operatsiya AOK qilingan xatoga to'g'ri keladi. Izoh 2: S-box ichidagi nosozlik o'rnini, ya'ni fp indeksining qiymatini qanday bilish - bu boshqa savol. SM4 S-box bilan amalga oshirilganda, fp ning noto'g'ri nomzodlarini filtrlash uchun ba'zi tanlangan shifrlangan matn juftlaridan foydalanishimiz mumkin (batafsil ma'lumot uchun III-C kichik bo'limidagi 4-bosqichga qarang). SM4 T-jadval bilan amalga oshirilganda, biz yuqoridagi ikkita muammoni hal qilish uchun joylashishni aniqlash algoritmini taqdim etamiz (batafsil ma'lumot uchun IV bo'limga qarang). Izoh 3: Noto'g'ri dumaloq kalitlar yaratilishi mumkin, chunki qidirish operatsiyasi kalit jadvalida ham chaqiriladi. Bunda Otherwise, he restarts Phase 2. C C C C Phase 3: Classify Triples Into Four Sets r32, r31, r30, and r∗: r r r r The adversary compares the two ciphertexts in each triple (Pj, Cj, Cjr), where Cj and Cjr are split into four words, i.e., Cj = (X35||X34||X33||X32) and Cjr = (X3r 5||X3r 4||X3r 3||X3r 2). Case 1: If X35 /= X35, X34 = X34, X33 = X33, X32 = X32, he adds the pair (Cj, Cjr) to Cr32. Case 2: If X35 /= X3r 5, X34 /= X3r 4, X33 = X3r 3, X32 = X3r 2, he adds the pair (Cj, Cjr) to Cr31. 3-holat: Agar X35 /= X3r 5, X34 /= X3r 4, X33 /= X3r 3, X32 = X3r2, u juftlikni (Cj, Cjr) Cr30 ga qo'shadi. 4-holat: Agar X35 X3r 5, X34 X3r 4, X33 X3r 3, X32 X3r 2, u juftlikni (Cj, Cjr) r∗ ga qo'shadi. 4-bosqich: (joylashuvni aniqlash algoritmi) dumaloq kalitni chiqarish RK 31 va fp qiymati: 1-qadam: Raqib fp qiymatini 0 ga o'rnatadi. 2-qadam: Cr32 da shifrlangan matn juftligi (Cj, Cjr) uchun raqib L−1(X 35⊕X3r 5) ni hisoblaydi. Keyinchalik, u ith (i ∈) qiymatini o'rnatadi {0, 1, 2, 3}) RK 31 dan [X32 ⊕ X33 ⊕ gacha bo'lgan oxirgi turning bayti L−1 X32 X3r 2 va xuddi shu usul yordamida RK 28 dumaloq kalitini tiklaydi. 7-bosqich: MK shifrlash kalitini aniqlang: Raqib MK shifrlash kalitiga ko'ra oladi Teskari kalit jadvalidan foydalangan holda RK 28, RK 29, RK 30 va RK 31. I. PFA T-JADVAL BILAN SM4 AMALGA OLISHGA QARSHI T-jadvalni qidirishning kirishi bayt, chiqishi esa to'rt bayt [18]. Shunday qilib, qachon to'rt baytdan faqat bittasi o'zgartiriladi 3-qadam: Raqib boshqa shifrlangan matn juftligini tanlaydi r32 dan boshlab va i o'zgaruvchisi to'rtta mumkin bo'lgan pozitsiyani qamrab olguncha 2-bosqichni takrorlaydi. Shunday qilib, u RK 31 tur kaliti nomzodini oladi. 4-qadam: Raqib Cr31 dan (Cj0 , Cjr0 ) bilan belgilangan shifrlangan matn juftini tanlaydi Bu yerda har bir Cji shifrlangan matn ham to‘rtta so‘zdan iborat (X35,ji ||X34,ji ||X33,ji ||X32,ji ) , ji ∈ {0, 1, . . . , n}. Keyin, u L−1(X34,j0 ⊕ X3r 4,j ) ni hisoblaydi. Agar bu L−1(X34,j0 ⊕ X3r 4,j ) ning nolga teng bo‘lmagan birinchi bayti indeksi l 4-bosqichda qo'llaniladigan texnikalar xatolik yuzaga kelgan joyni to'g'ri topa olmaydi. Shuning uchun biz ushbu vazifani bajarish uchun joylashishni aniqlash algoritmini ishlab chiqamiz (3-rasmga qarang). Boshqa tahlil bosqichlari III-C kichik bo'limdagi bosqichlarga o'xshaydi. 4-bosqich: (Joylashuvni aniqlash algoritmi) RK 31, RK30 dumaloq kalitlarini va fp qiymatini chiqaring: 1-qadam: Raqib fp ni 0 ga o'rnatadi. 2-qadam: Raqib G va G¯ ikkita bo'sh to'plamni yaratadi. 3-qadam: Cr32 dagi har bir juftlik (Cj, Cr) uchun raqib (l ∈ {0, 1, 2, 3} 0 G = X qo'yadi ⊕ X ⊕ X j (fp||fp||fp||fp), bu erda C = ), u yana ikkita shifrlangan matn juftini qidiradi (Cj1 , Cjr ) va (Cj2 , Cjr ) Cr31 dan l-baytlar ekanligini qondiradi j 32 33 34 ⊕ j 35 34 33||X32 va j G ni qo‘shadi ning L−1(X34,j1 ⊕ X3r 4,j ) va L−1(X34,j2 ⊕ X3r 4,j ) nolga teng emas 4-qadam: Raqib to‘rtta so‘zni tanlaydi Ga = shuningdek. Tanlangan juftliklar (Cv0 , Cvr0 )l , (Cv1 , Cvr1 )l va (Cv2 , Cvr2 )l bilan belgilanadigan tekshirish juftlari deb ataladi. 5-qadam: Raqib teskari transformatsiyani amalga oshiradi va RK 31 dumaloq kalitining yuqoridagi nomzodi yordamida Cv0, Cv1 va Cv2 ni alohida-alohida bir raund shifrini ochadi. Bundan tashqari, u X31,v0 X32,v0 X33,v0, X31,v1 X32,v1 X33,v1 va X31 ni alohida hisoblab chiqadi. ,v2 X32,v2 X33,v2. Agar ularning lth baytlari teng bo'lmasa, fp fp 1 bo'lsin va 2-bosqichga o'ting. Aks holda, u RK 31 dumaloq kaliti nomzodini va hozirgi vaqtda fp qiymatini chiqaradi. 4-bosqichning tegishli psevdokodi A ilovadagi 1-algoritmda ko'rsatilgan. (ga, 1 ga, 2 ga, 3 ga, 4), Gb (gb, 1 gb, 2 gb, 3 gb, 4), Gc (gc,1 gc,2 gc,3 gc,4) va Gd (gd,1 gd,2 gd,3 gd,4) shundan ga,i gb,i gc,i gd,i, har bir i uchun ( 1, 2, 3, 4). 5-qadam: Raqib tasodifiy vektorni (ga,i1 gb,i2 gc,i3 gd,i4) quradi, bunda i1, i2, i3, i4 1, 2, 3, 4 va to‘rtta indeks bir-biridan farqlanadi. Tuzilgan vektor RK 31 nomzodidir va jami 24 ta RK 31 nomzodini hosil qilish mumkin, x bilan belgilanadi. RK 31,1, RK 31,2, RK 31,24. 6-qadam: Raqib Gj elementini (almashtirmasdan) tortib oladi va uni har bir nomzod bilan solishtiradi. 5-bosqich: RK 30 va RK 29 dumaloq kalitlarini chiqarib oling: 1-qadam: Raqib C dan shifrlangan matn juftini tanlaydi r31 RK 31,l(l 1, 2, , 24) alohida. Agar to'rtta mos kelsa Gj va RK 31,l orasidagi baytlar hammasi alohida, RK 31,l ni olib tashlang va olish uchun to'g'ri Cj shifrlangan matnni bir turda hal qiladi X31. Keyin, u L−1 X34 ⊕ X3r 4 va farqni hisoblab chiqadi nomzodlar to'plamidan x. Raqib qolgan nomzodlarni G dagi har bir elementdan foydalanib, barcha ko'rsatkichlar bo'lguncha tekshirishda davom etadi. RK 30 dumaloq kalitini 4-bosqichning 2 va 3-bosqichlarida bo'lgani kabi bir xil usul yordamida tiklaydi. G dagi mentlar sinab ko'riladi. 7-qadam: C dagi har bir juftlik (Cj, Cj ) uchun r31 , raqib shifrni ochadi 2-qadam: Dushman r30 dan shifrlangan matn juftini tanlaydi va X31 va X30 ni olish uchun to'g'ri Cj shifrlangan matnni ikki marta hal qiladi. Keyin u farqni aniqlaydi L−1 X33 X3r 3 va RK 29 dumaloq kalitini xuddi shu usul yordamida tiklaydi. 6-bosqich: Cr∗ to'plamini tasniflang va RK 28 dumaloq kalitini chiqaring: 1-qadam: Cr∗ da shifrlangan matn juftlari (Cj, Cjr) uchun raqib X31 ichki holatini olish uchun Cj va Cjr ning bir raundda shifrini ochadi. va X3r 1 alohida. Agar X31 X3r 1 bo'lsa, u mos keladigan shifrlangan matn juftini (Cj, Cj ) r29 to'plamiga qo'yadi. 2-qadam: Raqib shifrlangan matn juftlik shaklini tanlaydi r29 va X31, X30 va X29 ni olish uchun to'g'ri Cj shifrlangan matnni uch turda hal qiladi. Keyin u farqni hisoblaydi X31 ni olish uchun Cj bir tur, G¯j = X31 ⊕X32 ⊕X33 ⊕ ni hisoblaydi (fp fp fp fp) va ¯ to'plamiga G¯j qo'shadi. 8-qadam: Raqib RK 30 dumaloq kalitini 4, 5 va 6-qadamlarda ko'rsatilgan usul yordamida tiklaydi. Agar x to'plamida RK 30 nomzodi qolmasa, ya'ni fp ning joriy qiymati noto'g'ri bo'lsa, fp fp bo'lsin. 1-ga o'ting va 2-bosqichga o'ting. Aks holda, u RK 31, RK 30 dumaloq kalitlari nomzodini va hozirgi vaqtda fp qiymatini chiqaradi. Yuqoridagi bosqichlarning tegishli psevdokodi B ilovadagi 3-algoritmda ko'rsatilgan. Izoh 4: Xatolar yuzaga kelganligi sababli, Gj ning kamida bir bayti ( ) oxirgi davra kaliti RK 31 ning mos baytiga teng bo'ladi. Bundan tashqari, chunki i (i 1, 2, 3, 4 ) baytlari Ga, Gb, Gc, va Gd juft-juft bo'lib, har biri farqlanadi Download 1.24 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling