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:
- Ujenzi wa PRNG salama kulingana na HMAC, CMAC, na KMAC.
- Uchambuzi wa usalama wa nenosiri zilizozalishwa chini ya seti tofauti za herufi na urefu, ikilinganisha nguvu zao na AES-128 na AES-256.
- Uthibitishaji wa majaribio wa ubahatishaji kwa kutumia NIST SP 800-90B, ukilenga majaribio ya Entropy na Independent and Identically Distributed (IID).
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:
- Tathmini ya Entropy: Inakadiria kiwango cha entropy ya chini katika mkondo wa biti uliozalishwa, ikionyesha kutotabirika kwake.
- Kupima IID (Independent and Identically Distributed): Seti ya majaribio ya takwimu (k.m., Chi-Square, Kolmogorov-Smirnov) ili kubaini ikiwa biti za matokeo zinajitegemea kitakwimu na zinafuata usambazaji sawa.
3. Kizazi Kilichopendekezwa cha Nenosiri Salama
Usanifu wa mfumo uliopendekezwa ni wazi lakini wenye nguvu:
- Ingizo/Mbegu: Inakubali TBHM ya hiari inayotolewa na mtumiaji. Ikiwa imetolewa, inachakatwa; vinginevyo, mbegu salama iliyozalishwa na mfumo hutumiwa.
- 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.
- 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.
- Uthibitishaji wa Entropy: Miolongo ya bahati nasibu iliyozalishwa kutoka kwa aina zote tatu za PRNG (HMAC-SHA256, CMAC-AES256, KMAC256) ilipita tathmini ya entropy ya NIST SP 800-90B, ikionyesha entropy ya chini ya juu karibu na thamani bora ya biti 1 kwa kila biti ya matokeo.
- Uthibitishaji wa IID: Miolongo pia ilipita seti ya majaribio ya IID, ikithibitisha kuwa biti zinajitegemea kitakwimu na zinasambazwa sawasawa, bila muundo wowote unaoweza kugunduliwa au upendeleo.
- Utendaji: Ingawa sio lengo kuu, karatasi inabainisha ufanisi wa kukokotoa. HMAC-SHA256 na KMAC256 zilionyesha kasi inayolingana, wakati CMAC-AES256 ilikuwa polepole kidogo kutokana na shughuli za kizuizi cha usimbuaji fiche, lakini zote zilikuwa ndani ya mipaka ya vitendo kwa kizazi cha nenosiri.
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:
- Kuunganisha kizazi hicho katika viendelezi vya kivinjari au wasimamizi wa nenosiri.
- Kuchunguza algoriti za usimbuaji fiche za baada ya quantum (k.m., kulingana na nyuzi, hash) kama msingi wa PRNG ili kuhakikisha usalama wa muda mrefu.
- Kukuza uthibitisho rasmi wa usalama chini ya mifano ya kawaida ya usimbuaji fiche.
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:
- LCG (Isiyo Salama): $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$
- HMAC: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$
- HMAC katika Hali ya Kukokotoa kwa PRNG: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$
- CMAC (CBC-MAC) kurudia: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$
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:
- Kutambua Aina ya PRNG: Chunguza msimbo chanzi. Tafuta:
mbegu = (a * mbegu + c) % m;Thibitisha kuwa ni tofauti ya LCG. - 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.
- Kupendekeza Marekebisho Kwa Kutumia Njia ya Karatasi:
- Chanzo cha Mbegu: Badilisha mbegu ya wakati wa mfumo na CSPRNG (k.m.,
/dev/urandomkwenye 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.
- Chanzo cha Mbegu: Badilisha mbegu ya wakati wa mfumo na CSPRNG (k.m.,
9. Matumizi ya Baadaye & Mwelekeo wa Maendeleo
Kanuni hizi zinaenea zaidi ya nenosiri za mtumiaji:
- Kizazi cha Ufunguo wa API & Ishara: Zaliswa kiotomatiki funguo za API za bahati nasibu za usimbuaji fiche na ishara za kikao ndani ya usanifu wa huduma ndogo.
- Usanidi wa Chaguomsingi Salama: Ingiza vizazi kama hivyo katika vifaa vya IoT au viwasakinishi programu ili kuunda nenosiri za kipekee, zenye nguvu za chaguomsingi za msimamizi, na hivyo kupunguza mashambulio ya sifa za chaguomsingi zilizoenea.
- Mageuzi ya Baada ya Quantum: Ujenzi unaotegemea KMAC unategemea asili SHA-3 (KECCAK), ambayo inachukuliwa kuwa inayostahimili quantum. Kizazi hiki kinaweza kuwa msingi wa mifumo ya "crypto-agile". Kazi ya baadaye inapaswa kuunganisha PRNG zinazotegemea algoriti za kawaida za baada ya quantum za NIST kama CRYSTALS-Kyber au saini zinazotegemea hash, jumuiya ya usimbuaji fiche ikiandaa kwa enzi ya kompyuta za quantum.
- Ushirikiano na Wasimamizi wa Nenosiri & SSO: Kizazi hicho kinaweza kuwa sehemu kuu ya wasimamizi wa nenosiri wa programu huria au mifumo ya Single Sign-On (SSO), ikitoa chanzo kinachoweza kukaguliwa wazi cha ubahatishaji wa nenosiri.
10. Marejeo
- M. Bishop, “Usalama wa Kompyuta: Sanaa na Sayansi”, Addison-Wesley, 2019.
- NIST, “Uchapishaji Maalum 800-63B: Miongozo ya Utambulisho Dijitali”, 2020.
- NIST, “Uchapishaji Maalum 800-90B: Mapendekezo kwa Vyanzo vya Entropy Vinavyotumika kwa Kizazi cha Biti za Bahati Nasibu”, 2018.
- NIST, “Uchapishaji Maalum 800-108 Rev. 1: Mapendekezo ya Utoaji wa Ufunguo Kwa Kutumia Vitendakazi vya Bandia vya Bahati Nasibu”, 2022.
- NIST, “FIPS 202: Kawaida ya SHA-3: Kitendakazi cha Hash kinachotegemea Kubadilishana na Kitendakazi cha Matokeo kinachoweza Kupanuliwa”, 2015.
- J. Kelsey, B. Schneier, D. Wagner, “Matumizi Salama ya Funguo zenye Entropy ya Chini”, Warsha ya Usalama wa Habari, 1997.
- M. Dworkin, “Mapendekezo ya Hali za Uendeshaji za Kizuizi cha Usimbuaji Fiche: Hali ya CMAC kwa Uthibitishaji”, NIST SP 800-38B, 2005.
- 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
- Linux Foundation, “Uthibitishaji wa Vigezo vya Kawaida na Programu Huria”, 2023. [Mtandaoni]. Inapatikana: https://www.linuxfoundation.org/