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.
bet4/7
Sana24.06.2023
Hajmi1.24 Mb.
#1653047
1   2   3   4   5   6   7
Bog'liq
Persistent Fault Analysis Against SM4 Implementations in Libraries

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:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling