Chagua Lugha

Kizazi Salama cha Nenosiri Kulingana na Kizazi cha Nambari za Bahati Nasibu za Bandia (PRNG)

Karatasi ya utafiti inayopendekeza kizazi salama cha nenosiri kinachotumia PRNG za HMAC, CMAC, au KMAC, zikithibitishwa kupitia majaribio ya entropy ya NIST SP 800-90B na IID.
computationalcoin.com | PDF Size: 0.5 MB
Ukadiriaji: 4.5/5
Ukadiriaji Wako
Umekadiria waraka huu tayari
Kifuniko cha Waraka PDF - Kizazi Salama cha Nenosiri Kulingana na Kizazi cha Nambari za Bahati Nasibu za Bandia (PRNG)

Yaliyomo

1. Utangulizi

Utafiti huu unashughulikia suala la kudumu la uvujaji wa nenosiri na hatari inayotokana ya kufichuliwa kwa data ya kibinafsi. Ingawa usalama wa wavuti ni kipengele, nguvu ya asili ya nenosiri yenyewe ndiyo muhimu zaidi. Udhaifu wa kawaida unajumuisha nenosiri zinazotokana na maneno muhimu, misemo maarufu, taarifa za mtumiaji, na matumizi ya nenosiri tena. Kuongezeka kwa AI na mifano mikubwa ya lugha kunawezesha zaidi washambulizi kukisia nenosiri kwa ufanisi zaidi.

Kwa kujibu hili, karatasi hii inapendekeza kizazi salama cha nenosiri kilichojengwa juu ya Kizazi Salama cha Nambari za Bahati Nasibu za Bandia (PRNG). PRNG kuu imejengwa kwa kutumia misingi ya usimbuaji fiche kama HMAC, CMAC, au KMAC kuzalisha nambari za bahati nasibu za hali ya juu, ambazo kisha hutumiwa kuunda nenosiri. Mfumo unaruhusu uingizaji wa hiari wa mtumiaji (Ujumbe wa Kutoholewa, TBHM) kuanzisha mchakato. Michango kuu ni:

2. Ukaguzi wa Fasihi

2.1. Kizazi cha Nambari za Bahati Nasibu za Bandia Kulingana na Kizazi cha Mstari wa Makubaliano

Lugha za programu za kawaida (C, Java) hutumia Vizazi vya Mstari wa Makubaliano (LCG). Kwa kuzingatia mbegu $k$, mlolongo unazalishwa kama: $f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$ na $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$. Njia hii haiko salama kwani hali inaweza kubadilishwa nyuma: $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$, ikifichua mbegu na mlolongo mzima.

2.2. Kizazi Salama cha Nambari za Bahati Nasibu za Bandia

PRNG salama zinatokana na misingi ya usimbuaji fiche kama ilivyoelezwa katika NIST SP 800-108 Rev. 1.

2.2.1. Kulingana na HMAC

Usalama unategemea sifa ya njia moja ya vitendakazi vya hash (k.m., SHA2, SHA3). Kwa ufunguo $k$ na ujumbe $M$, HMAC inakokotolewa kama: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$. Ili kuzalisha mkondo wa biti za bahati nasibu za urefu $L$, hali ya kukokotoa inatumika: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$, ikitoa matokeo $r_{hmac,i}$.

2.2.2. Kulingana na CMAC

Usalama unategemea kizuizi cha usimbuaji fiche cha AES katika hali ya CBC. Ujumbe $M$ umegawanywa katika vizuizi $M'_1, M'_2, ...$. Mchakato unarudiwa: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$ na $c_0 = Pad0(0)$. Matokeo ya mwisho $r_{cmac}$ yanatokana na kizuizi cha mwisho cha siri baada ya kujaza maalum (Pad1).

2.2.3. Kulingana na KMAC

Inatumia kitendakazi cha sponge cha KECCAK (msingi wa SHA-3), ikitoa kitendakazi cha MAC kinachoweza kubadilika na chenye nguvu kinachofaa kuzalisha biti za bahati nasibu za uhakika.

2.3. Njia za Kuthibitisha Ubahatishaji

Karatasi hii inakubali mfumo wa NIST SP 800-90B, ambao ndio kiwango halisi cha kuthibitisha vyanzo vya entropy. Inajumuisha seti mbili muhimu za uthibitishaji:

3. Kizazi Kilichopendekezwa cha Nenosiri Salama

Usanifu wa mfumo uliopendekezwa ni wazi lakini wenye nguvu:

  1. Ingizo/Mbegu: Inakubali TBHM ya hiari inayotolewa na mtumiaji. Ikiwa imetolewa, inachakatwa; vinginevyo, mbegu salama iliyozalishwa na mfumo hutumiwa.
  2. Kiini cha PRNG Salama: TBHM/mbegu huingizwa kwenye moja ya ujenzi tatu wa PRNG ya usimbuaji fiche (kulingana na HMAC, kulingana na CMAC, kulingana na KMAC) ili kuzalisha mlolongo wa biti za bandia zenye nguvu za usimbuaji fiche.
  3. Ujenzi wa Nenosiri: Biti za bahati nasibu huwekwa ramani kwenye seti ya herufi iliyobainishwa na mtumiaji au mfumo (k.m., herufi na nambari + alama) ili kutoa nenosiri la urefu unaotakikana.

Uchambuzi wa Usalama: Karatasi hii inasema kuwa usalama wa nenosiri lililozalishwa unategemea moja kwa moja entropy ya matokeo ya PRNG na ukubwa wa seti ya herufi. Inafanya uchambuzi wa kulinganisha, ukionyesha kuwa nenosiri la herufi 16 kutoka kwa seti ya herufi 94 lililozalishwa kwa njia hii linaweza kutoa upinzani wa nguvu kwa kulinganisha na au kuzidi ule wa funguo za AES-128 au AES-256, ikizingatiwa kuwa matokeo ya PRNG ni ya bahati nasibu kwa kweli.

4. Matokeo ya Majaribio na Uchambuzi

Uthibitishaji wa majaribio ndio nguvu kuu ya karatasi hii.

Maelezo ya Chati (Yaliyoelezwa): Chati ya mihimili ingefanya kulinganisha kwa ufanisi makadirio ya entropy ya chini (katika biti kwa biti) kwa njia tatu za PRNG dhidi ya thamani bora ya 1.0. Mihimili yote ingekuwa karibu sana na 1.0. Chati ya pili inaweza kuonyesha thamani-p kutoka kwa majaribio muhimu ya IID (k.m., Chi-Square, Kolmogorov-Smirnov), na thamani zote juu sana ya kizingiti cha kawaida cha umuhimu (k.m., 0.01), ikionyesha kupita.

5. Hitimisho na Kazi ya Baadaye

Utafiti umefaulu kuonyesha mfumo wa kizazi salama cha nenosiri kulingana na PRNG za usimbuaji fiche. Njia zilizopendekezwa huzalisha nenosiri zenye ubahatishaji wa kutosha, kama ilivyothibitishwa kwa ukali na viwango vya NIST. Mwelekeo wa kazi ya baadaye unajumuisha:

6. Uchambuzi wa Asili & Ufahamu wa Mtaalamu

Ufahamu wa Kiini: Karatasi hii sio juu ya kuvumbua msingi mpya wa usimbuaji fiche; ni juu ya matumizi ya nidhamu na uthibitishaji wa zile zilizopo, zilizokaguliwa (HMAC, CMAC, KMAC) kutatua tatizo la kawaida lakini muhimu la kizazi cha nenosiri. Thamani yake ya kweli iko katika kuvuka pengo kati ya usimbuaji fiche wa kinadharia na usafi wa usalama wa vitendo, ikithibitisha kwa ukali kwamba matokeo yake yanafaa kwa kusudi kwa kutumia seti bora ya majaribio ya NIST.

Mtiririko wa Mantiki: Hoja ni sahihi: 1) LCG za kawaida zimevunjwa kiusimbufiche. 2) PRNG salama zilizojengwa kutoka kwa MAC za usimbuaji fiche zina nguvu inayoweza kuthibitishwa. 3) Kwa hivyo, nenosiri zinazotokana na PRNG kama hizo zinarithi nguvu hiyo. 4) Madai haya yamethibitishwa sio tu kwa nadharia, bali kwa kupita majaribio magumu ya majaribio (NIST SP 800-90B). Uthibitishaji huu wa mwisho-hadi-mwisho ndio ambao zana nyingi za "kizazi salama cha nenosiri" hazina.

Nguvu & Kasoro:
Nguvu: Ukali wa kimethodolojia unastahili sifa. Kutumia NIST SP 800-90B kwa uthibitishaji mara moja kunainua uaminifu wake, sawa na jinsi algoriti za usimbuaji fiche zinavyo-thibitishwa kupitia CAVP (Programu ya Uthibitishaji wa Algorithm ya Usimbuaji Fiche). Kulinganisha na nguvu ya ufunguo wa AES ni kipimo cha vitendo, kinachoweza kuelewewa kwa timu za usalama.
Kasoro: Karatasi hii inafanya kazi katika mazingira yaliyodhibitiwa, bora. Inachukulia kuwa mbegu/TBHM ya awali ina entropy ya kutosha—kiungo muhimu na mara nyingi dhaifu katika mifumo halisi. Ingizo la hiari la mtumiaji ni upanga wenye makali mbili; maneno dhaifu, yanayotabirika ya mtumiaji (k.m., "nenosiri langu") yanaweza kudhoofisha ujenzi mzima wa usimbuaji fiche, hatari isiyo na kipimo kamili. Zaidi ya hayo, kama ilivyobainishwa katika ukaguzi wa 2023 "Usimbuaji Fiche wa Baada ya Quantum: Safari ya Miaka Kumi" na NIST, uwanja unaelekea kwenye algoriti zinazostahimili quantum. Ujenzi wa karatasi hii, ingawa salama dhidi ya kompyuta za kitamaduni, unategemea SHA2/AES, ambazo ustahimilivu wao wa quantum wa muda mrefu haujulikani.

Ufahamu Unaoweza Kutekelezwa: Kwa wasanifu wa usalama, karatasi hii inatoa mchoro. Usijitengeneze PRNG yako mwenyewe. Tumia miundo iliyokubalika ya usimbuaji fiche kama vizuizi vya ujenzi. Muhimu zaidi, thibitisha, thibitisha, thibitisha. Unganisha uthibitishaji endelevu wa entropy (kama majaribio ya NIST) katika mifumo yako muhimu ya kizazi cha nambari za bahati nasibu, desturi inayosisitizwa na mashirika kama juhudi za Linux Foundation za CCC (Uthibitishaji wa Vigezo vya Kawaida). Kwa maendeleo ya bidhaa, ufahamu wa haraka ni kubadilisha kizazi chochote cha nenosiri kinachotegemea LCG katika mifumo yako na kizazi kinachotegemea KMAC au HMAC-SHA256, kwa kutumia mbegu iliyopatikana kwa usalama. Hatua ya kuweka wakati wa baadaye ni kuanza kutengeneza mfano na miundo inayotegemea SHA-3/KECCAK (kama KMAC) na kufuatilia mageuzi ya viwango vya usimbuaji fiche vya baada ya quantum vya NIST kwa ajili ya ushirikiano wa mwisho.

7. Maelezo ya Kiufundi & Uundaji wa Kihisabati

Shughuli kuu za kihisabati zimefafanuliwa katika Ukaguzi wa Fasihi (Sehemu ya 2). Fomula muhimu zinajumuisha:

Kizazi cha nenosiri huweka ramani nambari kamili ya bahati nasibu $R$ (kutoka kwa matokeo ya PRNG) kwa faharasa ya herufi: $\text{faharasa} = R \ \text{mod} \ |S|$, ambapo $|S|$ ni ukubwa wa seti ya herufi.

8. Mfumo wa Uchambuzi & Mfano wa Kesi

Mfano wa Kesi: Kutathmini Kizazi cha Nenosiri cha Mfumo wa Zamani
Hali: Programu ya wavuti ya zamani hutumia LGC iliyobadilishwa kuzalisha nenosiri za muda za mtumiaji. Ukaguzi wa usalama unahitajika.
Utumiaji wa Mfumo:

  1. Kutambua Aina ya PRNG: Chunguza msimbo chanzi. Tafuta: mbegu = (a * mbegu + c) % m; Thibitisha kuwa ni tofauti ya LCG.
  2. Kutathmini Usalama wa Usimbuaji Fiche: LCG ina uhakika na inaweza kubadilishwa nyuma. Msambazaji anayepata nenosiri chache mfululizo anaweza kutatua kwa mbegu na kutabiri nenosiri zote za baadaye, kukiuka miongozo ya NIST SP 800-63B juu ya ubahatishaji wa mthibitishaji.
  3. Kupendekeza Marekebisho Kwa Kutumia Njia ya Karatasi:
    • Chanzo cha Mbegu: Badilisha mbegu ya wakati wa mfumo na CSPRNG (k.m., /dev/urandom kwenye Linux, CryptGenRandom kwenye Windows).
    • Kizazi cha Kiini: Tekeleza PRNG inayotegemea HMAC-SHA256 kulingana na muundo wa karatasi.
    • Uthibitishaji: Zaliswa sampuli kubwa (biti 1,000,000) kutoka kwa kizazi kipya na uendeshe NIST STS (Seti ya Majaribio ya Takwimu) au viwakadirishi vya entropy kutoka SP 800-90B ili kuthibitisha ubahatishaji kabla ya utekelezaji.
Mfumo huu hubadilisha tathmini kutoka "je, inaonekana kuwa ya bahati nasibu?" hadi "je, inapita uthibitishaji wa kawaida wa usimbuaji fiche?"

9. Matumizi ya Baadaye & Mwelekeo wa Maendeleo

Kanuni hizi zinaenea zaidi ya nenosiri za mtumiaji:

10. Marejeo

  1. M. Bishop, “Usalama wa Kompyuta: Sanaa na Sayansi”, Addison-Wesley, 2019.
  2. NIST, “Uchapishaji Maalum 800-63B: Miongozo ya Utambulisho Dijitali”, 2020.
  3. NIST, “Uchapishaji Maalum 800-90B: Mapendekezo kwa Vyanzo vya Entropy Vinavyotumika kwa Kizazi cha Biti za Bahati Nasibu”, 2018.
  4. NIST, “Uchapishaji Maalum 800-108 Rev. 1: Mapendekezo ya Utoaji wa Ufunguo Kwa Kutumia Vitendakazi vya Bandia vya Bahati Nasibu”, 2022.
  5. NIST, “FIPS 202: Kawaida ya SHA-3: Kitendakazi cha Hash kinachotegemea Kubadilishana na Kitendakazi cha Matokeo kinachoweza Kupanuliwa”, 2015.
  6. J. Kelsey, B. Schneier, D. Wagner, “Matumizi Salama ya Funguo zenye Entropy ya Chini”, Warsha ya Usalama wa Habari, 1997.
  7. M. Dworkin, “Mapendekezo ya Hali za Uendeshaji za Kizuizi cha Usimbuaji Fiche: Hali ya CMAC kwa Uthibitishaji”, NIST SP 800-38B, 2005.
  8. NIST, “Ripoti ya Hali juu ya Mzunguko wa Tatu wa Mchakato wa Kawaida wa Usimbuaji Fiche wa Baada ya Quantum wa NIST”, 2022. [Mtandaoni]. Inapatikana: https://csrc.nist.gov/projects/post-quantum-cryptography
  9. Linux Foundation, “Uthibitishaji wa Vigezo vya Kawaida na Programu Huria”, 2023. [Mtandaoni]. Inapatikana: https://www.linuxfoundation.org/