Amazon je objavio kriptografsku biblioteku otvorenog koda za jezik Rust

Amazon je predstavio aws-lc-rs kriptografsku biblioteku, koja je namijenjena za korištenje u Rust aplikacijama i API-kompatibilna je s ring Rust bibliotekom. Projektni kod se distribuira pod licencama Apache 2.0 i ISC. Knjižnica podržava Linux (x86, x86-64, aarch64) i macOS (x86-64) platforme.

Implementacija kriptografskih operacija u aws-lc-rs temelji se na biblioteci AWS-LC (AWS libcrypto), napisanoj u C++ i zauzvrat temeljenoj na kodu iz projekta BoringSSL (ogranak OpenSSL-a koji održava Google). Dodatno, predložena su dva paketa sanduka niske razine: aws-lc-sys (automatski generirana povezivanja niske razine preko AWS-LC) i aws-lc-fips-sys (vezivanja niske razine temeljena na FFI (sučelju stranih funkcija) ), reproducirajući AWS-LC API.

Knjižnica AWS-LC uključuje formalno provjerene implementacije algoritama SHA-2, HMAC, AES-GCM, AES-KWP, HKDF, ECDH i ECDSA koji ispunjavaju zahtjeve za kriptografske sustave koje mogu koristiti vladine agencije u Sjedinjenim Državama i Kanada. Stvaranje Rust povezivanja potaknuto je potrebom za kripto bibliotekama usklađenim sa FIPS-om koje se mogu koristiti u Rust projektima. Amazon je u biblioteci aws-lc-rs odlučio kombinirati Ring API, koji je poznat i uobičajen među Rust programerima, i provjerene implementacije algoritama iz biblioteke AWS-LC koji su u skladu sa FIPS zahtjevima.

Korištenje AWS-LC biblioteke kao osnove također je omogućilo korištenje svih specifičnih optimizacija koje je razvio Amazon u aws-lc-rs. Na primjer, AWS-LC pruža opcije za ChaCha20-Poly1305 i NIST P-256 algoritme koji su zasebno optimizirani za ARM procesore, a značajne optimizacije za x86 sustave napravljene su kako bi se ubrzala obrada ECDSA digitalnih potpisa. Prilikom testiranja rada protokola TLS 1.2 i 1.3, biblioteka aws-lc-rs značajno je nadmašila paket rustls u smislu izvedbe, pokazujući i smanjenje vremena postavljanja veze i povećanje propusnosti (više od dva puta u ECDSA testovima).

Amazon je objavio kriptografsku biblioteku otvorenog koda za jezik Rust


Izvor: opennet.ru

Dodajte komentar