Rilis perpustakaan kriptografi Botan 3.0.0

Pustaka kriptografi Botan 3.0.0 sekarang tersedia untuk digunakan dalam proyek NeoPG, cabang dari GnuPG 2. Pustaka ini menyediakan banyak koleksi primitif siap pakai yang digunakan dalam protokol TLS, sertifikat X.509, sandi AEAD, modul TPM , PKCS#11, hashing kata sandi dan kriptografi pasca-kuantum (tanda tangan berbasis hash dan perjanjian kunci berbasis McEliece). Perpustakaan ini ditulis dalam C++ dan didistribusikan di bawah lisensi BSD.

Perubahan dalam rilis baru meliputi:

  • Basis kode memungkinkan penggunaan standar C++20 (sebelumnya C++11 digunakan); oleh karena itu, persyaratan untuk kompiler telah ditingkatkan - setidaknya GCC 11, Clang 14 atau MSVC 2022 sekarang diperlukan untuk perakitan. untuk kompiler HP dan Pathscale telah dihentikan, begitu pula proyek Google NaCL dan IncludeOS.
  • Sebagian besar perubahan telah dilakukan yang melanggar kompatibilitas ke belakang. Banyak file header usang telah dihapus, misalnya file khusus untuk algoritma tertentu (aes.h, dll.). Implementasi fungsi dan algoritma yang sebelumnya dinyatakan usang telah dihapus (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1). Saat membuat entropi untuk pembuat angka pseudorandom, kami berhenti menggunakan /proc dan /dev/random. Beberapa kelas (misalnya, Data_Store), struktur dan enumerasi telah dihapus dari API. Pengembalian dan penggunaan tanda kosong telah dihentikan jika memungkinkan.
  • Menambahkan dukungan untuk protokol TLS 1.3. Dukungan untuk TLS 1.0, TLS 1.1 dan DTLS 1.0 telah dihentikan. Dukungan untuk cipher suite DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK dan Camellia CBC, cipher anonim, dan hash SHA-1 telah dihapus dari implementasi TLS.
  • Menambahkan dukungan untuk algoritma kriptografi pasca-kuantum Kyber, yang tahan terhadap kekerasan pada komputer kuantum.
  • Menambahkan dukungan untuk algoritma kriptografi pasca-kuantum Dilithium untuk bekerja dengan tanda tangan digital.
  • Menambahkan dukungan untuk hashing format titik kurva elips menggunakan teknik SSWU (draft-irtf-cfrg-hash-to-curve).
  • Menambahkan dukungan untuk fungsi hash kriptografi BLAKE2b.
  • Antarmuka pemrograman baru T::new_object telah diusulkan yang mengembalikan Unique_ptr alih-alih penunjuk "T*".
  • Menambahkan fungsi dan API baru: X509_DN::DER_encode, Public_Key::get_int_field, ideal_granularity, require_entire_message, SymmetricAlgorithm::has_keying_material. Menambahkan sejumlah besar fungsi baru untuk digunakan dalam kode C (C89).
  • Implementasi algoritma Argon2 menggunakan instruksi AVX2.
  • Ukuran tabel dalam implementasi algoritma Camellia, ARIA, SEED, DES dan Whirlpool telah dikurangi.
  • Implementasi baru DES/3DES diusulkan, terlindung dari sebagian besar kelas serangan saluran samping yang mengevaluasi keadaan cache.
  • Implementasi SHACAL2 dioptimalkan untuk sistem berbasis arsitektur ARMv8 dan POWER.
  • Kode untuk menghitung bit paritas, konversi bcrypt/base64, dan menentukan tipe string ASN.1 dibebaskan dari pencarian tabel dan sekarang tidak bergantung pada data yang sedang diproses (berjalan dalam waktu konstan)

Sumber: opennet.ru

Tambah komentar