ĂshtĂ« njoftuar pĂ«r pĂ«rfundimin e suksesshĂ«m tĂ« iniciativĂ«s pĂ«r zĂ«vendĂ«simin nĂ« Python tĂ« implementimeve tĂ« algoritmeve kriptografikĂ«, tĂ« ofruara nĂ« modulet hashlib dhe hmac, me variante me provĂ« matematikore tĂ« qĂ«ndrueshmĂ«risĂ«, tĂ« pĂ«rgatitura nga projekti «HACL*». Puna pĂ«r kalimin nĂ« funksione me provĂ« matematikore tĂ« qĂ«ndrueshmĂ«risĂ« ka nisur nĂ« vitin 2022 dhe Ă«shtĂ« iniciuar pas identifikimit tĂ« mbingarkesĂ«s nĂ« implementimin e algoritmit SHA3, tĂ« pĂ«rdorur nĂ« modulin Python hashlib.
Në depozitën kryesore të projektit CPython është pranuar kodi me implementime të reja të funksioneve kriptografike të heshit dhe algoritmeve HMAC (mekanizmi i verifikimit të mesazheve). Të gjitha funksionet hash dhe HMAC të ofruara si standard në Python janë zëvendësuar me variante të verifikuara. Ndër të tjera, është shtuar implementimi HMAC-BLAKE2, që përdor instruksione SIMD AVX2 për të përshpejtuar llogaritjet. Pritet që kodi i verifikuar të hyjë në përbërje të lëshimit të vjeshtës Python 3.14.
Implementimet e reja të funksioneve kriptografike janë transferuar nga biblioteka HACL*, e zhvilluar nga studiues të Institutit Kombëtar të Kërkimeve për Informatikën dhe Automatizimin (INRIA), një degë e Microsoft Research dhe Universitetit Carnegie Mellon. Biblioteka HACL* mbështet funksione të tipizuara kriptografike, të cilat janë të mjaftueshme për funksionimin e TLS 1.3 dhe mbështetje të plotë për API-në NaCl (Biblioteka për Rrjetësh dhe Kriptografi), siç janë Curve25519, Ed25519, AES-GCM, Chacha20, Poly1305, SHA-2, SHA-3, HMAC dhe HKDF. Në terma të performancës, biblioteka HACL* është e afërt me OpenSSL, por ndryshe nga kjo ofron garanci të shtesë për besueshmërinë dhe sigurinë.
Kodi HACL* është shkruar në një nënshtresë të gjuhës funksionale F*, e cila ofron një sistem të tipeve të varura dhe sqarimeve, duke lejuar përcaktimin e specifikimeve të sakta (modelin matematikor) dhe garantimin e mungesës së gabimeve në realizim përmes formulave SMT dhe mjeteve ndihmëse për dëshmi. Kodi referencë në F* kompilon në kod në gjuhën C përmes kompajlerit KaRaMeL dhe është i disponueshëm për integrim me projekte të tjera.
Verifikimi pĂ«rfshin pĂ«rcaktimin e specifikimeve tĂ« detajuara qĂ« pĂ«rshkruajnĂ« tĂ« gjitha variantet e sjelljes sĂ« programit dhe formimin e njĂ« provĂ« matematike qĂ« kodi i shkruar pĂ«rputhet plotĂ«sisht me specifikimet e pĂ«rgatitura. Verifikimi ofron garancinĂ« qĂ« programa do tĂ« funksionojĂ« vetĂ«m siç e kanĂ« menduar zhvilluesit dhe nuk pĂ«rmban klasa tĂ« caktuara gabimesh, siç janĂ« mbingarkesat e buffers, dereferencat e pĂ«rcaktuesve, qasja nĂ« zona tĂ« memories qĂ« janĂ« çliruar tashmĂ« ose çlirimi i dyfishtĂ« i bllokĂ«ve tĂ« memories. GjatĂ« procesit tĂ« kompilimit sigurohet njĂ« kontroll i fortĂ« i tipeve dhe vlerave â njĂ« komponent kurrĂ« nuk do t'i kalojĂ« njĂ« komponenti tjetĂ«r parametra qĂ« nuk i pĂ«rmbahen specifikimit, dhe nuk do tĂ« ketĂ« qasje nĂ« gjendjet e brendshme tĂ« komponenteve tĂ« tjera.
Proci i kalimit në kodin e verifikuar zgjati dy vjet e gjysmë dhe kërkoi përmirësimin e bibliotekës HACL*, funksionaliteti i së cilës u zgjerua me mundësitë e nevojshme për zëvendësimin transparent të funksionalitetit ekzistues hashlib. Për shembull, në HACL* u shtua mbështetje për modalitetin e punës HMAC, u ofruan modalitete shtesë për algoritmet Blake2, u realizua një API i ri për SHA3, që përfshin të gjitha variantet e algoritmeve nga familja Keccak, u siguruan mjetet e nevojshme për njoftimin mbi gabimet (për shembull, në rast të problemeve me alokimin e memories), u zhvilluan skenarë për automatizimin e transferimit të versioneve të reja të HACL* në repository-n Python.
Burimi: opennet.ru
