Yaliyomo
1. Utangulizi
Ripoti zinazoendelea za uvujaji wa akaunti za wavuti na nenosiri zinaonyesha umuhimu mkubwa wa usalama wa habari na nenosiri. Ingawa udhaifu wa wavuti ni sababu, usalama wa asili wa nenosiri lenyewe ndio muhimu zaidi. Mazoea ya kawaida ya nenosiri zisizo salama ni pamoja na nenosiri zenye msingi wa maneno muhimu, matumizi ya misemo maarufu, kujumuisha taarifa za kibinafsi, na matumizi ya nenosiri moja kwa matumizi mbalimbali. Kuongezeka kwa AI na mifano mikubwa ya lugha kunawezesha washambulizi zaidi kukisia nenosiri kwa ufanisi zaidi.
Utafiti huu unapendekeza kizazi salama cha nenosiri kulingana na Vizazi vya Nambari za Bahati Nasibu Bandia (PRNG) salama kwa kriptografia. Hujenga PRNG kwa kutumia Msimbo wa Uthibitishaji wa Ujumbe wenye Funguo (HMAC), Msimbo wa Uthibitishaji wa Ujumbe wenye msingi wa Siri (CMAC), au Msimbo wa Uthibitishaji wa Ujumbe wa KECCAK (KMAC) ili kutoa nambari salama za bahati nasibu, ambazo kisha hutumiwa kuzalisha nenosiri. Ubahati nasibu wa nambari zilizozalishwa huthibitishwa kulingana na kiwango cha NIST SP 800-90B kupitia vipimo vya entropy na vipimo vya Usambazaji wa Kujitegemea na Sawa (IID).
Michango Muhimu:
- Uundaji wa PRNG salama kulingana na HMAC, CMAC, na KMAC kwa ajili ya kuzalisha nenosiri.
- Uchambuzi wa usalama wa nenosiri chini ya seti tofauti za herufi na vikwazo vya urefu, na kulinganishwa na AES-128/256.
- Uthibitishaji wa kimajaribio kwa kutumia vipimo vya entropy na IID vya NIST SP 800-90B.
2. Ukaguzi wa Fasihi
2.1. PRNG yenye msingi wa Kizazi cha Mstari wa Mlinganisho (LCG)
LCG hutumiwa kwa kawaida katika lugha kama C na Java, huzalisha mfululizo wa nambari kwa kutumia uhusiano wa kurudia wa mstari. Kwa kuzingatia mbegu $k$, thamani ya awali $f_0(k)$ huhesabiwa kama $f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$. Nambari zinazofuata huzalishwa na $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$. Hata hivyo, LCG hazina usalama kwani hali yake inaweza kubadilishwa nyuma kwa kutumia $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$, na kufichua mbegu na mfululizo wote.
2.2. Kizazi Salama cha Nambari za Bahati Nasibu Bandia
Ili kushughulikia udhaifu wa LCG, PRNG salama kwa kriptografia ni muhimu. Makala hii inazingatia miundo mitatu iliyopendekezwa na NIST.
2.2.1. PRNG yenye msingi wa HMAC
Usalama unategemea sifa ya njia moja ya vitendakazi vya hash (k.m., SHA2, SHA3). Kwa ufunguo $k$ na ujumbe $M$, HMAC huhesabiwa kama $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$, ambapo $ipad$ na $opad$ ni viunga. Ili kuzalisha mkondo mrefu wa bits, hali ya hesabu hutumiwa: $M_i = i \ || \ KDF \ || \ 0x00 \ || \ M \ || \ L$, na kutoa matokeo $r_{hmac,i}$.
2.2.2. PRNG yenye msingi wa CMAC
Usalama unategemea Kiwango cha Usimbaji wa Juu (AES). Kwa kutumia hali ya Mnyororo wa Kizuizi cha Siri (CBC) na ufunguo $k$, ujumbe $M$ umegawanywa katika vizuizi $M'_1, M'_2, ...$. Nakala ya siri huhesabiwa kwa kurudia: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$, na $c_0 = Pad0(0)$. Matokeo ya mwisho $r_{cmac}$ hupatikana kutoka kwa kizuizi cha mwisho.
2.2.3. PRNG yenye msingi wa KMAC
Kulingana na kitendakazi cha hash cha SHA-3 (KECCAK), KMAC hutoa matokeo ya urefu tofauti na inachukuliwa kuwa mgombeaji mwenye nguvu kwa kriptografia ya baada ya quantum. Muundo wake unafuata kanuni sawa ya hash iliyothibitishwa, na kutoa dhamana ya juu ya usalama.
2.3. Njia za Uthibitishaji wa Bahati Nasibu
Kiwango cha NIST SP 800-90B hutoa njia za kutathmini ubora wa vizazi vya nambari za bahati nasibu. Viwango viwili muhimu vinatathminiwa:
- Uthibitishaji wa Entropy: Hupima kutabirika au "ubahati nasibu" kwa kila biti kwenye data. Entropy ya juu ni muhimu kwa nenosiri salama.
- Uthibitishaji wa IID (Usambazaji wa Kujitegemea na Sawa): Hujaribu ikiwa mfululizo uliozalishwa ni huru kihisabati na unafuata usambazaji sawa, na kuhakikisha hakuna muundo au uhusiano wowote.
3. Kizazi Kilichopendekezwa cha Nenosiri Salama
Muundo wa mfumo unajumuisha hatua kuu mbili:
- Uzalishaji wa Nambari Salama za Bahati Nasibu: Mtumiaji anaweza kutoa hiari Ujumbe wa Kutahiniwa (TBHM). Hii, pamoja na ufunguo wa kriptografia, inachakatwa na PRNG salama iliyochaguliwa (yenye msingi wa HMAC/CMAC/KMAC) ili kutoa mfululizo wa bits wa bahati nasibu wenye nguvu ya kriptografia.
- Uzalishaji wa Nenosiri: Bits za bahati nasibu huwekwa kwenye seti ya herufi iliyobainishwa na mtumiaji au mfumo (k.m., herufi na nambari pamoja na alama) ya urefu maalum ili kuzalisha nenosiri la mwisho la maandishi. Nguvu ya usalama inachambuliwa ikilinganishwa na AES-128/256, kwa kuzingatia entropy inayotolewa na ukubwa wa seti ya herufi na urefu wa nenosiri.
4. Majaribio na Matokeo
4.1. Usanidi wa Majaribio
Majaribio yalifanywa ili kuthibitisha ubahati nasibu wa matokeo ya PRNG. Kifurushi cha majaribio kilitekeleza taratibu za tathmini za NIST SP 800-90B kwa makadirio ya entropy na upimaji wa IID kwenye sampuli kubwa za nambari za bahati nasibu zilizozalishwa kutoka kwa aina zote tatu za PRNG.
4.2. Matokeo ya Uthibitishaji wa Bahati Nasibu
Muhtasari wa Matokeo: PRNG zilizopendekezwa zenye msingi wa HMAC, CMAC, na KMAC zote zilifanikiwa kupita vipimo vya uthibitishaji vya entropy na IID vya NIST SP 800-90B. Mfululizo uliozalishwa haukuonyesha mienendo yoyote muhimu ya kitakwimu kutoka kwa ubahati nasibu wa kweli, na kuthibitisha ufaao wao kwa kuzalisha nenosiri la kriptografia.
Maelezo ya Chati (Ya Kuwaziwa): Chati ya mipango inayolinganisha makadirio ya entropy ya chini (katika bits kwa kila biti) kwa aina tatu za PRNG dhidi ya kizingiti cha kupita cha NIST. Mipango yote mitatu ingeonyeshwa juu sana ya mstari wa kizingiti, na KMAC ikiwezekana kuonyesha thamani ya juu zaidi, ikifuatiwa kwa karibu na HMAC-SHA3 na CMAC-AES256.
4.3. Uchambuzi wa Utendaji
Uchambuzi wa kulinganisha wa ufanisi wa kihesabu (k.m., vizazi kwa sekunde) ulifanywa. Vizazi vya CMAC (kwa kutumia uwezeshaji wa vifaa vya AES-NI) kwa kawaida vilionyesha utoaji wa juu zaidi, vikifuatiwa na vya HMAC (SHA2/SHA3), na KMAC ikiwa nzito zaidi kihesabu lakini ikitoa sifa thabiti za usalama wa baada ya quantum.
5. Hitimisho na Kazi ya Baadaye
Utafiti huu ulifanikiwa kubuni na kuthibitisha kizazi salama cha nenosiri kilichojengwa juu ya PRNG salama kwa kriptografia (HMAC, CMAC, KMAC). Nenosiri zilizozalishwa hupata usalama wao kutokana na uthabiti uliothibitishwa wa vitu hivi vya msingi vya kriptografia na ubahati nasibu wa juu uliothibitishwa wa matokeo ya PRNG. Kazi ya baadaye ni pamoja na kuunganisha kizazi hicho katika viendelezi vya kivinjari au wasimamizi wa nenosiri, kuchunguza matumizi yake katika kuzalisha funguo za kriptografia zaidi ya nenosiri, na kufanya uchambuzi wa upinzani dhidi ya mashambulizi ya njia za upande kwenye mfumo kamili.
6. Uchambuzi wa Asili & Maoni ya Mtaalamu
Uelewa wa Msingi: Makala haya ni jibu la vitendo, lenye mwelekeo wa uhandisi, kwa kiungo dhaifu cha kudumu katika usalama wa mtandao: nenosiri zilizochaguliwa na binadamu. Thamani yake ya msingi sio katika kriptografia mpya bali katika matumizi sahihi na uthibitishaji mkali wa miundo iliyojaribiwa kwenye vita (HMAC, CMAC, KMAC) kwa kesi maalum ya matumizi yenye athari kubwa. Inatambua kwa usahihi kwamba kuhamisha uzalishaji wa nenosiri kutoka kwa akili za watumiaji hadi kwenye mchakato wa kriptografia uliothibitishwa ni bora ya msingi ya usalama, sawa na mabadiliko kutoka kriptografia ya ulinganifu hadi isiyo ya ulinganifu kwa ajili ya kubadilishana funguo.
Mtiririko wa Kimantiki: Mantiki ni sahihi na inafuata muundo wa kawaida wa utafiti uliotumika: ufafanuzi wa tatizo (nenosiri dhaifu) → ukosoaji wa suluhisho za kawaida (LCG zisizo salama) → pendekezo la suluhisho thabiti (kizazi chenye msingi wa CSPRNG) → uthibitishaji wa kimajaribio (vipimo vya NIST). Uchaguzi wa NIST SP 800-90B kama kizingiti cha uthibitishaji ni bora, kwani ndio kiwango cha ukweli cha kutathmini ubahati nasibu katika miktadha ya kriptografia, na kutoa uaminifu wa haraka kwa matokeo.
Nguvu & Kasoro:
Nguvu: Nguvu kubwa zaidi ya makala ni uthibitishaji wake wa vitendo. Pendekezo nyingi zinasimama katika hatua ya kubuni. Kwa kufanya matokeo kupitia vipimo vikali vya NIST, waandishi wanatoa ushahidi halisi wa usalama, ambao ni muhimu kwa kupitishwa. Kujumuisha KMAC, kulingana na SHA-3, kunaonyesha utabiri kuhusu masuala ya baada ya quantum, kama ilivyoelezwa katika mchakato wa kiwango cha kriptografia ya baada ya quantum unaoendelea wa NIST.
Kasoro/Ukomo: Uchambuzi umegawanyika kidogo. Kasoro muhimu ni ukosefu wa majadiliano kuhusu usimamizi wa mbegu. Usalama wa PRNG yoyote huporomoka ikiwa mbegu yake inatabirika au imevujwa. Je, mfumo unazalisha, huhifadhi, na kulinda vipi ufunguo wa awali wa kriptografia kwa HMAC/CMAC/KMAC? Hii ni muhimu kama algorithm yenyewe. Zaidi ya hayo, wakati kulinganisha nguvu ya nenosiri na AES ni muhimu, kulinganisha moja kwa moja na vizazi vya nenosiri vilivyopo (kama vile vile katika KeePass au 1Password) na PRNG zao za msingi (k.m., kutumia ChaCha20) kungetoa muktadha bora kwa faida yake ya ushindani.
Uelewa Unaoweza Kutekelezwa: Kwa wataalamu wa usalama, makala haya hutumika kama mfano. Hatua ya 1: Ondoa mara moja matumizi yoyote ya LCG au RNG zinazofanana zisizo za kriptografia (kama `rand()`) kwa kazi zenye usalama. Hatua ya 2: Wakati wa kujenga au kukagua kizazi cha nenosiri, vitu vya msingi vya orodha ya ukaguzi vinapaswa kuwa: 1) Tumia CSPRNG (HMAC_DRBG, CTR_DRBG kutoka NIST SP 800-90A, au miundo hapa), 2) Thibitisha matokeo yake na kifurushi kama NIST SP 800-90B au Dieharder, na 3) Tekeleza uzalishaji thabiti wa mbegu kutoka kwa chanzo cha entropy ya juu (k.m., `getrandom()` kwenye Linux). Makala yanafanikiwa kuzingatia hatua ya 2, lakini hatua ya 1 na 3 ni sehemu muhimu sawa ya picha kamili.
7. Maelezo ya Kiufundi & Uundaji wa Kihisabati
Usalama wa kizazi kilichopendekezwa unategemea vitendakazi vya msingi vya kriptografia. Shughuli muhimu za kihisabati ni:
- HMAC: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$
- CMAC (CBC-MAC): $c_{i+1} = E(k, c_i \oplus M_{i+1})$, ambapo $E$ ni kisiri cha kizuizi (AES).
- Entropy ya Nenosiri: Entropy $H$ ya nenosiri lililozalishwa ni $H = L \cdot \log_2(N)$, ambapo $L$ ni urefu wa nenosiri na $N$ ni ukubwa wa seti ya herufi. Kwa nenosiri la herufi 16 kutoka kwa seti ya herufi 94, $H \approx 16 \cdot \log_2(94) \approx 105$ bits.
8. Mfumo wa Uchambuzi & Mfano wa Kesi
Mfano wa Kesi: Ukaguzi wa Kitendakazi cha Kurekebisha Nenosiri cha Programu ya Wavuti
Hali: Programu ya wavuti huzalisha nenosiri la muda kwa watumiaji wanaobofya "Nimesahau Nenosiri."
Utumiaji wa Mfumo:
- Tambua RNG: Chunguza msimbo wa upande wa seva. Kupata `Math.random()` (JavaScript) au LCG rahisi katika PHP kungekuwa kushindwa muhimu.
- Tathmini Chanzo cha Entropy: PRNG imepandwa vipi? Je, inatumia entropy ya mfumo (`/dev/urandom`, `CryptGenRandom`)?
- Weka Ramani kwenye Suluhisho Lililopendekezwa: Pendekeza kubadilisha RNG iliyokosekana na moduli inayotekeleza muundo wa makala haya—kwa mfano, kitendakazi cha Python kinachotumia `hmac.new` na SHA256 na mbegu kutoka `os.urandom(32)`.
- Thibitisha Matokeo (Baada ya Utekelezaji): Zalishe sampuli ya nenosiri za muda 1,000,000, zibadilishe kuwa mkondo wa bits, na uendeshe kifurushi cha NIST STS (kifurushi cha majaribio kinachohusiana) ili kuhakikisha ubahati nasibu.
9. Matumizi ya Baadaye & Mwelekeo
Teknolojia ya msingi ina matumizi zaidi ya uzalishaji wa nenosiri wa mtumiaji:
- Uzalishaji wa Funguo za API & Ishara: Kuzalisha funguo salama za bahati nasibu za API na ishara za kikao kwa miundo ya huduma ndogo.
- Viamuzi vya Msingi Salama: Kuunganisha kizazi kama hicho katika programu thabiti ya vifaa vya IoT ili kuunda nenosiri za kipekee, zenye nguvu za msingi kwa kila kifaa, na kupunguza mashambulizi yanayoenea kulingana na chaguo-msingi za kawaida.
- Uzalishaji wa Mbegu za Kriptografia: Matokeo ya ubora wa juu yanaweza kutumiwa kupanda mifumo mingine ya kriptografia au kuzalisha nambari za mara moja na vekta za kuanzishia (IV).
- Unganisho na Wasimamizi wa Nenosiri: Algorithm inaweza kuunganishwa kama injini ya msingi kwa wasimamizi wa nenosiri wa chanzo huria, na kutoa chanzo cha wazi na kinachoweza kukaguliwa cha bahati nasibu.
- Uandali wa Baada ya Quantum: Uchunguzi zaidi na uboreshaji wa kizazi chenye msingi wa KMAC, kulingana na viwango vya NIST FIPS 202 na SP 800-185, ili kujiandaa kwa enzi ya kompyuta ya baada ya quantum.
10. Marejeo
- M. Bishop, "Usalama wa Kompyuta: Sanaa na Sayansi," Addison-Wesley, 2003.
- NIST, "Chapisho Maalum 800-63B: Miongozo ya Utambulisho Dijitali," 2017.
- NIST, "Chapisho Maalum 800-90A: Mapendekezo ya Uzalishaji wa Nambari za Bahati Nasibu Kwa Kutumia Vizazi vya Bits za Bahati Nasibu Vilivyobainishwa," 2015.
- NIST, "Chapisho Maalum 800-90B: Mapendekezo ya Vyanzo vya Entropy Vinavyotumika kwa Uzalishaji wa Bits za Bahati Nasibu," 2018.
- J. Kelsey, B. Schneier, D. Wagner, "Matumizi Salama ya Funguo za Entropy ya Chini," ISW '97.
- D. D. Hwang, B. B. Gupta, "Utafiti wa Usalama wa Nenosiri na Athari Zake," JIS, 2019.
- NIST, "FIPS 202: Kiwango cha SHA-3: Kitendakazi cha Hash chenye msingi wa Kubadilishana na Kitendakazi cha Matokeo Kinachopanuka," 2015.
- NIST, "SP 800-185: Vitendakazi Vilivyotokana na SHA-3: cSHAKE, KMAC, TupleHash na ParallelHash," 2016.
- M. S. Turan, E. Barker, J. Kelsey, "Mapendekezo ya Miundo ya Kizazi cha Bits za Bahati Nasibu (RBG)," NIST SP 800-90C, 2016.
- P. G. Neumann, "Hatari za Kielelezo kwa Umma katika Matumizi ya Mifumo ya Kompyuta na Teknolojia Inayohusiana," ACM SIGSOFT, 1995.