SOPG: Uundaji wa Nywila Zilizoagizwa Kulingana na Utafutaji kwa Mitandao ya Neva ya Kujirejesha
Uchambuzi wa SOPG, mbinu mpya ya kuunda nywila inayopanga matokeo kulingana na uwezekano, ikiboresha sana ufanisi wa mashambulizi ikilinganishwa na sampuli nasibu na kushinda miundo ya kisasa zaidi.
Nyumbani »
Nyaraka »
SOPG: Uundaji wa Nywila Zilizoagizwa Kulingana na Utafutaji kwa Mitandao ya Neva ya Kujirejesha
1. Utangulizi
Nywila bado ndio njia kuu ya kuthibitisha utambulisho wa mtumiaji kwa sababu ya urahisi na kubadilika kwake. Kwa hivyo, kukisia nywila ni sehemu muhimu ya utafiti wa usalama wa mtandao, muhimu kwa ajili ya majaribio ya usalama ya kushambulia (k.m., majaribio ya kuingilia, urejesho wa nywila) na tathmini ya nguvu ya kujihami. Mbinu za jadi, kutoka kwa orodha ya sheria hadi miundo ya takwimu kama vile minyororo ya Markov na PCFG, zina mapungufu ya asili katika utofauti na ufanisi. Kuja kwa ujifunzaji wa kina, hasa mitandao ya neva ya kujirejesha kama vile GPT, kunatoa njia yenye matumaini ya kutoa makisio ya nywila yanayofanana zaidi na yenye ufanisi. Hata hivyo, kuna kikwazo kikubwa kinachoendelea: mbinu ya kawaida ya sampuli nasibu ya kuzalisha husababisha matokeo yanayorudiwa, na muhimu zaidi, hutoa nywila kwa mpangilio usio bora, ukiharibu sana ufanisi wa shambulio. Karatasi hii inatangaza SOPG (Uundaji wa Nywila Zilizoagizwa Kulingana na Utafutaji), mbinu mpya iliyoundwa kushinda kikwazo hiki.
2. Usuli na Kazi Inayohusiana
2.1 Mabadiliko ya Kukisia Nywila
Kukisia nywila kumebadilika kupitia awamu tofauti. Mbinu za awali zilitegemea mashambulizi ya kamusi na sheria zilizoundwa kwa mikono za kubadilisha (k.m., John the Ripper), ambazo zilikuwa za heuristiki na zinazotegemea uzoefu. Kuenea kwa uvujaji wa nywila kwa kiwango kikubwa (k.m., RockYou mwaka 2009) kulifanya iwezekanavyo kutumia mbinu za takwimu zinazotokana na data. Mfano wa Markov na Sarufi ya Uwezekano Isiyo na Mazingira (PCFG) yaliwakilisha maendeleo makubwa, yakitoa msingi wa kinadharia wa kuiga miundo na uwezekano wa nywila. Hata hivyo, mifumo hii mara nyingi hupatwa na kuzidi-kufaa na uwezo mdogo wa kutoa seti kubwa na tofauti ya wagombea wenye uwezekano mkubwa.
2.2 Mbinu Zinazotumia Mitandao ya Neva
Mifumo ya ujifunzaji wa kina, ikiwa ni pamoja na Mitandao ya Kuzalisha ya Kupingana (GANs) kama vile PassGAN na Wakodaji Otomatiki Wenye Tofauti (VAEs) kama vile VAEPass, imetumika kwa uundaji wa nywila. Hivi karibuni zaidi, mifumo ya kujirejesha, hasa ile inayotokana na muundo wa Transformer (k.m., PassGPT), imeonyesha utendaji bora katika kukamata utegemezi wa masafa marefu katika mlolongo wa nywila. Mifumo hii hujifunza usambazaji wa uwezekano $P(nywila)$ kutoka kwa data ya mafunzo. Changamoto ya msingi haiko katika uwezo wa kujifunza wa mfumo, bali katika mkakati wa kuzalisha (sampuli) unaotumika kutoa makisio kutoka kwa usambazaji huu uliojifunzwa.
3. Mbinu ya SOPG
3.1 Dhana Kuu na Sababu
Ufahamu wa msingi wa SOPG ni kwamba ili shambulio la kuvunja nywila liwe na ufanisi, nywila zinazozalishwa zinapaswa kuwasilishwa kwa mpangilio takriban wa kupungua kwa uwezekano wao kama ilivyokadiriwa na mfumo. Sampuli nasibu ya kawaida (k.m., sampuli ya asili) haihakikishi mpangilio huu, na husababisha kupoteza juhudi za hesabu kwenye makisio ya uwezekano mdogo mapema katika shambulio. SOPG inashughulikia hili kwa kubadilisha sampuli nasibu na algorithm ya utafutaji inayoelekezwa juu ya nafasi ya matokeo inayowezekana ya mfumo wa kujirejesha.
3.2 Algorithm ya Utafutaji na Uundaji Unaopangwa
SOPG inachukulia mfumo wa kujirejesha kama kazi ya kupima. Inatumia mkakati wa utafutaji (kwa dhana sawa na utafutaji wa boriti au utafutaji bora-kwanza) kuchunguza kwa utaratibu mti wa mlolongo unaowezekana wa herufi. Algorithm inapendelea kupanua matawi (nywila za sehemu) zilizo na uwezekano wa jumla wa juu zaidi, na kuhakikisha kwamba nywila kamili zinazalishwa na kutolewa kwa mpangilio karibu bora. Mchakato huu kwa asili huondoa nakala zinazorudiwa na huongeza uwezekano wa kugonga nywila lengwa kwa idadi ndogo zaidi ya makisio yaliyozalishwa.
3.3 Muundo wa Mfano wa SOPGesGPT
Waandishi hutekeleza mbinu yao kwenye muundo unaotokana na GPT, unaoitwa SOPGesGPT. Mfumo huu hujifunza uwezekano wa masharti wa kila herufi katika nywila ikizingatiwa herufi zilizotangulia: $P(x_t | x_{1}, x_{2}, ..., x_{t-1})$. Algorithm ya SOPG kisha hutumika wakati wa awamu ya utambuzi/uzalishaji ili kutoa orodha iliyopangwa ya makisio ya nywila kutoka kwa mfumo huu uliofunzwa.
4. Maelezo ya Kiufundi na Muundo wa Kihisabati
Kwa mfumo wa kujirejesha, uwezekano wa nywila $\mathbf{x} = (x_1, x_2, ..., x_T)$ umegawanywa kama ifuatavyo:
$$P(\mathbf{x}) = \prod_{t=1}^{T} P(x_t | x_{
5. Matokeo ya Majaribio na Uchambuzi
Kiwango cha Ufunikaji (SOPGesGPT)
35.06%
Uliofikia kiwango cha juu katika jaribio la tovuti moja.
Uboreshaji Zaidi ya PassGPT
81%
Ongezeko la kiwango cha ufunikaji.
Uboreshaji Zaidi ya PassGAN
421%
Ongezeko la kiwango cha ufunikaji.
5.1 Ulinganisho: SOPG dhidi ya Sampuli Nasibu
Majribi yanaonyesha faida ya msingi ya SOPG ikilinganishwa na sampuli nasibu. Wakati wa kulenga ufunikaji sawa wa nywila (kiwango cha ufunikaji) kwenye seti ya majaribio, SOPG inahitaji utambuzi wa mfumo chache zaidi na hutoa nywila jumla chache zaidi. Hii ni kwa sababu kila kisio kutoka kwa SOPG ni cha kipekee na cha uwezekano mkubwa, huku sampuli nasibu ikipoteza rasilimali kwenye nakala zinazorudiwa na mifuatano ya uwezekano mdogo. Hii inabadilishwa moja kwa moja kuwa faida kubwa ya ufanisi kwa mashambulio ya vitendo, ikipunguza wakati na gharama ya hesabu.
5.2 Ufanisi Dhidi ya Miundo ya Kisasa Zaidi
SOPGesGPT ililinganishwa na miundo inayoongoza: OMEN, FLA, PassGAN, VAEPass, na PassGPT ya kisasa. Katika hali ya majaribio ya tovuti moja, SOPGesGPT ilishinda wapinzani wote kwa kiasi kikubwa katika kiwango cha ufanisi na kiwango cha ufunikaji. Kiwango cha ufunikaji kiliorodheshwa cha 35.06% kinawakilisha uboreshaji wa 254% zaidi ya OMEN, 298% zaidi ya FLA, 421% zaidi ya PassGAN, 380% zaidi ya VAEPass, na 81% zaidi ya PassGPT. Hii inathibitisha SOPG sio tu kama sampuli yenye ufanisi, bali kama sehemu muhimu inayowezesha hali mpya ya kisasa zaidi katika utendaji wa kukisia nywila.
Maelezo ya Chati: Chati ya mipira ingeonyesha "Kiwango cha Ufunikaji (%)" kwenye mhimili wa Y na majina ya miundo (OMEN, FLA, PassGAN, VAEPass, PassGPT, SOPGesGPT) kwenye mhimili wa X. Mipira ya SOPGesGPT ingekuwa mirefu zaidi (~35%) ikilinganishwa na nyingine (kutoka takriban 7% hadi 19%), ikisisitiza kwa kuonekana utendaji wake bora.
6. Mfumo wa Uchambuzi na Mfano wa Kesi
Mfumo wa Kutathmini Mifumo ya Kukisia Nywila:
Nguvu ya Kuiga: Je, muundo unaweza kujifunza kwa usahihi usambazaji tata wa nywila? (k.m., GPT dhidi ya GAN).
Mkakati wa Uzalishaji: Wagombea wanachukuliwaje sampuli kutoka kwa mfumo? (Nasibu dhidi ya Iliyopangwa/Iliyotokana na Utafutaji).
Vipimo vya Ufanisi wa Shambulio:
Kiwango cha Ufunikaji: % ya nywila za majaribio zilizovunjwa ndani ya N makisio.
Nambari ya Kisio: Idadi ya makisio yanayohitajika kuvunja X% ya nywila.
Kiwango cha Ufanisi: % ya makisio yaliyozalishwa ambayo ni nywila halali, za kipekee.
Gharama ya Hesabu/Wakati: Utambuzi au wakati kwa kila kisio.
Mfano wa Kesi (Sio Msimbo): Fikiria washambuliaji wawili, Alice na Bob, wakitumia mfumo huo uliofunzwa wa PassGPT. Alice anatumia sampuli nasibu ya kawaida. Bob anatumia mbinu ya SOPG iliyounganishwa na PassGPT (na kuifanya iwe SOPGesGPT). Ili kuvunja 20% ya orodha ya nywila lengwa, sampuli ya Alice inaweza kuhitaji kutoa makisio milioni 5, na mengi yanayorudiwa, na kuchukua saa 10. Mfumo wa Bob unaotokana na SOPG hutoa nywila kwa mpangilio wa uwezekano, na kuvunja 20% hiyo hiyo kwa makisio 500,000 tu ya kipekee na yenye uwezekano mkubwa, na kukamilisha kazi kwa saa 1. Shambulio la Bob lina ufanisi mara 10 zaidi katika suala la makisio na wakati, faida ya kutengeneza uamuzi.
7. Matumizi ya Baadaye na Mwelekeo wa Siku Zijazo
Matumizi ya Haraka:
Jaribio la Nguvu ya Nywila Kabla ya Wakati: Timu za usalama zinaweza kutumia miundo iliyoboreshwa na SOPG kukagua sera za nywila kwa ufanisi zaidi, na kutambua nywila dhaifu kabla ya washambuliaji kufanya hivyo.
Upelelezi wa Kidijitali na Ulinzi wa Sheria: Kuharakisha urejesho wa nywila kutoka kwa vifaa vilivyokamatwa katika uchunguzi wa jinai.
Orodha Nyeusi Zilizoboreshwa za Nywila: Kutoa orodha kamili zaidi na zilizopangwa kwa uwezekano wa nywila dhaifu kwa ajili ya kukataliwa na mfumo wakati wa uundaji.
Mwelekeo wa Utafiti wa Siku Zijazo:
Utafutaji wa Mseto na Unaobadilika: Kuchanganya SOPG na heuristiki nyingine za utafutaji au kuifanya ibadilikane kulingana na sifa za lengo (k.m., tovuti, idadi ya watumiaji).
Ulinzi Dhidi ya Kukisia Kwa Mpangilio: Utafiti katika mpango mpya wa kuhash nywila au itifaki za uthibitishaji ambazo zina ukinzani maalum kwa mashambulio ya uwezekano yaliyopangwa, na kuendelea zaidi ya ulinzi unaotokana na entropy.
Zaidi ya Nywila: Kutumia kanuni za uundaji zilizopangwa kwa nyanja nyingine za usalama, kama vile kutoa funguo zinazowezekana za usimbuaji au muundo wa kuingilia mtandao kwa ajili ya majaribio.
Uboreshaji wa Ufanisi: Kupunguza mzigo wa kumbukumbu na hesabu wa algorithm ya utafutaji ili kuifanya iweze kuongezeka kwa miundo kubwa zaidi na seti za herufi.
8. Marejeo
M. J. Weir et al., "Kuvunja Nywila Kwa Kutumia Sarufi ya Uwezekano Isiyo na Mazingira," katika IEEE Symposium on Security and Privacy, 2009.
B. Hitaj et al., "PassGAN: Mbinu ya Ujifunzaji wa Kina kwa Kukisia Nywila," katika International Conference on Applied Cryptography and Network Security, 2019.
J. Goodfellow et al., "Mitandao ya Kuzalisha ya Kupingana," katika Advances in Neural Information Processing Systems, 2014. (Karatasi ya msingi ya GAN)
A. Vaswani et al., "Umakini Ni Yote Unayohitaji," katika Advances in Neural Information Processing Systems, 2017. (Karatasi ya msingi ya Transformer)
D. P. Kingma na M. Welling, "Wakodaji Otomatiki Wenye Tofauti Bayes," arXiv:1312.6114, 2013. (Karatasi ya msingi ya VAE)
M. Dell'Amico na P. Filippone, "Tathmini ya Nguvu ya Monte Carlo: Ukaguzi wa Nywila wa Haraka na Unaotegemewa," katika ACM Conference on Computer and Communications Security, 2015.
OpenAI, "Ripoti ya Kiufundi ya GPT-4," 2023. (Inaonyesha uwezo wa miundo mikubwa ya kujirejesha).
9. Uchambuzi wa Asili na Uhakiki wa Mtaalamu
Ufahamu wa Msingi
Mafanikio ya karatasi hii sio muundo mpya wa neva, bali ni ufafanuzi upya wa msingi wa tatizo. Kwa miaka mingi, jamii ya kukisia nywila, kama vile uwanja wa utafiti wa GAN wa mapema ambao ulizingatia sana ubunifu wa muundo (kama inavyoonekana katika maendeleo kutoka GAN ya asili hadi CycleGAN kwa tafsiri ya picha), imekuwa ikishikiliwa na nguvu ya kuiga. SOPG inatambua kwa usahihi kwamba kwa shambulio la kiutendaji, mkakati wa uzalishaji ndio njia muhimu. Ufahamu kwamba mfumo wa kujirejesha sio tu kizalishi bali ni kazi ya kupima kwa nafasi ya utafutaji wa mchanganyiko ni yenye nguvu na inaweza kuhamishwa. Inabadilisha mwelekeo kutoka "kujifunza bora" hadi "kutafuta kwa akili," mabadiliko ya dhana yenye matokeo ya haraka na ya kushangaza.
Mtiririko wa Kimantiki
Mantiki ni kamili na inafanana na mazoea bora katika uboreshaji wa algorithm: 1) Tambua Kikwazo: Sampuli nasibu haina ufanisi (nakala zinazorudiwa, mpangilio mbaya). 2) Fafanua Lengo Bora: Nywila zinapaswa kujaribiwa kwa mpangilio wa kupungua kwa uwezekano. 3) Ramani kwa Tatizo Linalojulikana: Hili ni utafutaji bora-kwanza juu ya mti ambapo gharama ya nodi ni -log(uwezekano). 4) Tekeleza na Thibitisha: Tumia algorithm ya utafutaji (SOPG) kwa mfumo wa msingi wenye nguvu (GPT) na uonyeshe uboreshaji wa ukubwa wa mpangilio. Mtiririko kutoka kwa utambulisho wa tatizo kupitia suluhisho la algorithm hadi uthibitishaji wa kimajaribio ni safi na ya kushawishi.
Nguvu na Kasoro
Nguvu: Faida za utendaji sio za nyongeza; ni za mapinduzi, na uboreshaji wa 80-400% zaidi ya hali ya kisasa zaidi ya sasa. Mbinu hiyo ni nadhifu kwa dhana na haitegemei mfumo—inaweza kuunganishwa na mfumo wowote wa nywila wa kujirejesha. Kuondolewa kwa nakala zinazorudiwa ni faida ya bure na ya thamani.
Kasoro na Maswali: Karatasi hii ni nyepesi kwenye gharama ya hesabu ya utafutaji wenyewe. Utafutaji wa boriti au A* unaweza kuwa na mzigo wa kumbukumbu na hesabu. Je, kipimo cha "utambuzi kwa kila nywila" kina usawa gani dhidi ya urahisi wa sampuli nasibu? Utafutaji unaweza kuwa na ufanisi katika hesabu ya makisio lakini wa gharama kubwa kwa wakati wa ukuta kwa kila kisio. Zaidi ya hayo, mbinu hii kwa asili imeunganishwa na makadirio ya uwezekano yaliyosanidiwa ya mfumo. Ikiwa uthabiti wa mfumo haujasanidiwa vizuri (suala linalojulikana katika mitandao mikubwa ya neva), "mpangilio bora" unaweza kuwa usio bora. Ulinganisho, ingawa ni wa kushangaza, ungekuwa na nguvu zaidi na kipimo cha "wakati-wa-kuvunja" pamoja na nambari ya kisio.
Ufahamu Unaoweza Kutekelezwa
Kwa Wataalamu wa Usalama: Mchezo umebadilika. Ulinzi unaotokana na "entropy ya nywila" au upinzani kwa mashambulio ya zamani ya kisheria sasa umekuwa wa zamani zaidi. Hatua ya haraka ni kutoa agizo na kutekeleza matumizi ya maneno ya siri marefu, ya nasibu au kutaka wasimamizi wa nywila. Uthibitishaji Mwingi (MFA) sio mapendekezo tena; ni lazima.
Kwa Watafiti: Kazi hii inafungua njia kadhaa. Kwanza, chunguza mbinu za mseto zinazochanganya mpangilio wa kimataifa wa SOPG na sampuli ya haraka, ya ndani kwa ajili ya kasi. Pili, chunguza ulinzi ulioundwa mahsusi kuvunja uhusiano kati ya uwezekano wa mfumo na uwezo halisi wa kuvunjika (k.m., kutumia mbinu kutoka kwa ujifunzaji wa mashine ya kupinga ili "ku-sumisha" data ya mafunzo). Tatu, kama ilivyopendekezwa na rasilimali kama mfumo wa MITRE ATT&CK, jamii ya usalama wa mtandao inahitaji kujumuisha rasmi "kukisia kwa mpangilio kilichoboreshwa na AI" kama mbinu mpya (Txxxx) kwa upatikanaji wa hati za utambulisho, na kuchochea majibu ya ulinzi yaliyopangwa.
Kwa kumalizia, Min Jin et al. wametoa darasa kuu katika utafiti wenye athari. Hawakujenga tu mfumo bora kidogo; walitambua na kuvunja dhana ya msingi, na kutoa uboreshaji wa kazi ya hatua. Karatasi hii itatajwa kama wakati ambapo kukisia nywila kulisogea kutoka changamoto ya kuiga hadi changamoto ya uboreshaji wa algorithm.
Ufahamu wa Msingi
Mafanikio ya karatasi hii sio muundo mpya wa neva, bali ni ufafanuzi upya wa msingi wa tatizo. Kwa miaka mingi, jamii ya kukisia nywila, kama vile uwanja wa utafiti wa GAN wa mapema ambao ulizingatia sana ubunifu wa muundo (kama inavyoonekana katika maendeleo kutoka GAN ya asili hadi CycleGAN kwa tafsiri ya picha), imekuwa ikishikiliwa na nguvu ya kuiga. SOPG inatambua kwa usahihi kwamba kwa shambulio la kiutendaji, mkakati wa uzalishaji ndio njia muhimu. Ufahamu kwamba mfumo wa kujirejesha sio tu kizalishi bali ni kazi ya kupima kwa nafasi ya utafutaji wa mchanganyiko ni yenye nguvu na inaweza kuhamishwa. Inabadilisha mwelekeo kutoka "kujifunza bora" hadi "kutafuta kwa akili," mabadiliko ya dhana yenye matokeo ya haraka na ya kushangaza.
Mtiririko wa Kimantiki
Mantiki ni kamili na inafanana na mazoea bora katika uboreshaji wa algorithm: 1) Tambua Kikwazo: Sampuli nasibu haina ufanisi (nakala zinazorudiwa, mpangilio mbaya). 2) Fafanua Lengo Bora: Nywila zinapaswa kujaribiwa kwa mpangilio wa kupungua kwa uwezekano. 3) Ramani kwa Tatizo Linalojulikana: Hili ni utafutaji bora-kwanza juu ya mti ambapo gharama ya nodi ni -log(uwezekano). 4) Tekeleza na Thibitisha: Tumia algorithm ya utafutaji (SOPG) kwa mfumo wa msingi wenye nguvu (GPT) na uonyeshe uboreshaji wa ukubwa wa mpangilio. Mtiririko kutoka kwa utambulisho wa tatizo kupitia suluhisho la algorithm hadi uthibitishaji wa kimajaribio ni safi na ya kushawishi.
Nguvu na Kasoro
Nguvu: Faida za utendaji sio za nyongeza; ni za mapinduzi, na uboreshaji wa 80-400% zaidi ya hali ya kisasa zaidi ya sasa. Mbinu hiyo ni nadhifu kwa dhana na haitegemei mfumo—inaweza kuunganishwa na mfumo wowote wa nywila wa kujirejesha. Kuondolewa kwa nakala zinazorudiwa ni faida ya bure na ya thamani.
Kasoro na Maswali: Karatasi hii ni nyepesi kwenye gharama ya hesabu ya utafutaji wenyewe. Utafutaji wa boriti au A* unaweza kuwa na mzigo wa kumbukumbu na hesabu. Je, kipimo cha "utambuzi kwa kila nywila" kina usawa gani dhidi ya urahisi wa sampuli nasibu? Utafutaji unaweza kuwa na ufanisi katika hesabu ya makisio lakini wa gharama kubwa kwa wakati wa ukuta kwa kila kisio. Zaidi ya hayo, mbinu hii kwa asili imeunganishwa na makadirio ya uwezekano yaliyosanidiwa ya mfumo. Ikiwa uthabiti wa mfumo haujasanidiwa vizuri (suala linalojulikana katika mitandao mikubwa ya neva), "mpangilio bora" unaweza kuwa usio bora. Ulinganisho, ingawa ni wa kushangaza, ungekuwa na nguvu zaidi na kipimo cha "wakati-wa-kuvunja" pamoja na nambari ya kisio.
Ufahamu Unaoweza Kutekelezwa
Kwa Wataalamu wa Usalama: Mchezo umebadilika. Ulinzi unaotokana na "entropy ya nywila" au upinzani kwa mashambulio ya zamani ya kisheria sasa umekuwa wa zamani zaidi. Hatua ya haraka ni kutoa agizo na kutekeleza matumizi ya maneno ya siri marefu, ya nasibu au kutaka wasimamizi wa nywila. Uthibitishaji Mwingi (MFA) sio mapendekezo tena; ni lazima.
Kwa Watafiti: Kazi hii inafungua njia kadhaa. Kwanza, chunguza mbinu za mseto zinazochanganya mpangilio wa kimataifa wa SOPG na sampuli ya haraka, ya ndani kwa ajili ya kasi. Pili, chunguza ulinzi ulioundwa mahsusi kuvunja uhusiano kati ya uwezekano wa mfumo na uwezo halisi wa kuvunjika (k.m., kutumia mbinu kutoka kwa ujifunzaji wa mashine ya kupinga ili "ku-sumisha" data ya mafunzo). Tatu, kama ilivyopendekezwa na rasilimali kama mfumo wa MITRE ATT&CK, jamii ya usalama wa mtandao inahitaji kujumuisha rasmi "kukisia kwa mpangilio kilichoboreshwa na AI" kama mbinu mpya (Txxxx) kwa upatikanaji wa hati za utambulisho, na kuchochea majibu ya ulinzi yaliyopangwa.
Kwa kumalizia, Min Jin et al. wametoa darasa kuu katika utafiti wenye athari. Hawakujenga tu mfumo bora kidogo; walitambua na kuvunja dhana ya msingi, na kutoa uboreshaji wa kazi ya hatua. Karatasi hii itatajwa kama wakati ambapo kukisia nywila kulisogea kutoka changamoto ya kuiga hadi changamoto ya uboreshaji wa algorithm.