آمازون کتابخانه رمزنگاری aws-lc-rs را معرفی کرده است که برای استفاده در برنامه های Rust در نظر گرفته شده است و با کتابخانه ring Rust سازگار با API است. کد پروژه تحت مجوزهای Apache 2.0 و ISC توزیع شده است. این کتابخانه از پلتفرم های لینوکس (x86، x86-64، aarch64) و macOS (x86-64) پشتیبانی می کند.
اجرای عملیات رمزنگاری در aws-lc-rs بر اساس کتابخانه AWS-LC (AWS libcrypto)، نوشته شده در C++ و به نوبه خود بر اساس کد پروژه BoringSSL (یکی از شاخه های OpenSSL که توسط گوگل نگهداری می شود) است. علاوه بر این، دو بسته جعبه سطح پایین پیشنهاد شده است: aws-lc-sys (اتصالات سطح پایین تولید شده خودکار بر روی AWS-LC) و aws-lc-fips-sys (پیوندهای سطح پایین بر اساس FFI (رابط عملکرد خارجی) ) بازتولید API AWS-LC.
کتابخانه AWS-LC شامل اجرای رسمی تأیید شده الگوریتمهای SHA-2، HMAC، AES-GCM، AES-KWP، HKDF، ECDH، و ECDSA است که الزامات سیستمهای رمزنگاری قابل استفاده توسط سازمانهای دولتی در ایالات متحده را برآورده میکند. و کانادا ایجاد یک اتصال Rust به دلیل نیاز به داشتن کتابخانههای رمزنگاری سازگار با FIPS است که میتوانند در پروژههای Rust استفاده شوند. در کتابخانه aws-lc-rs، آمازون تصمیم گرفت Ring API را که در بین برنامه نویسان Rust آشنا و رایج است، ترکیب کند و اجرای الگوریتمهایی را از کتابخانه AWS-LC که با الزامات FIPS مطابقت دارند تأیید کند.
استفاده از کتابخانه AWS-LC به عنوان پایه همچنین امکان استفاده از تمام بهینه سازی های خاص توسعه یافته توسط آمازون را در aws-lc-rs فراهم کرد. به عنوان مثال، AWS-LC گزینه هایی را برای الگوریتم های ChaCha20-Poly1305 و NIST P-256 ارائه می دهد که به طور جداگانه برای پردازنده های ARM بهینه سازی شده اند و بهینه سازی های قابل توجهی برای سیستم های x86 برای سرعت بخشیدن به پردازش امضای دیجیتال ECDSA انجام شده است. هنگام آزمایش عملکرد پروتکلهای TLS 1.2 و 1.3، کتابخانه aws-lc-rs به طور قابل توجهی از بسته rustls از نظر عملکرد بهتر عمل کرد که هم کاهش زمان راهاندازی اتصال و هم افزایش توان را نشان داد (بیش از دو برابر در آزمایشهای ECDSA).
منبع: opennet.ru