Botan Cryptographic Library เปิดตัว 3.0.0

ขณะนี้ไลบรารีการเข้ารหัส Botan 3.0.0 พร้อมใช้งานแล้วสำหรับใช้ในโครงการ NeoPG ซึ่งเป็นทางแยกของ GnuPG 2 ไลบรารีนี้จัดเตรียมคอลเลกชันพื้นฐานสำเร็จรูปจำนวนมากที่ใช้ในโปรโตคอล TLS, ใบรับรอง X.509, การเข้ารหัส AEAD, โมดูล TPM , PKCS#11, การแฮชรหัสผ่านและการเข้ารหัสหลังควอนตัม (ลายเซ็นแบบแฮชและข้อตกลงคีย์แบบ McEliece) ไลบรารีนี้เขียนด้วยภาษา C++ และเผยแพร่ภายใต้ลิขสิทธิ์ BSD

ท่ามกลางการเปลี่ยนแปลงในรุ่นใหม่:

  • ฐานโค้ดอนุญาตให้ใช้มาตรฐาน C++20 ได้ (ก่อนหน้านี้ใช้ C++11) ดังนั้น ข้อกำหนดสำหรับคอมไพเลอร์จึงเพิ่มขึ้น - อย่างน้อย GCC 11, Clang 14 หรือ MSVC 2022 จำเป็นสำหรับการประกอบ สำหรับคอมไพเลอร์ HP และ Pathscale ถูกยกเลิก เช่นเดียวกับโครงการ Google NaCL และ IncludedOS
  • มีการเปลี่ยนแปลงส่วนใหญ่ที่ละเมิดความเข้ากันได้แบบย้อนหลัง ไฟล์ส่วนหัวที่ล้าสมัยจำนวนมากได้ถูกลบออกไปแล้ว ตัวอย่างเช่น ไฟล์ส่วนหัวเฉพาะสำหรับอัลกอริธึมบางอย่าง (aes.h ฯลฯ) การใช้งานฟังก์ชันและอัลกอริธึมที่ประกาศไว้ก่อนหน้านี้ล้าสมัยได้ถูกลบออกแล้ว (CAST-256, MISTY1, Kasumi, DESX, XTEA, PBKDF1, MCEIES, CBC-MAC, Tiger, NEWHOPE, CECPQ1) เมื่อสร้างเอนโทรปีสำหรับตัวสร้างตัวเลขสุ่มเทียม เราหยุดใช้ /proc และ /dev/random คลาสบางคลาส (เช่น Data_Store) โครงสร้างและการแจงนับถูกลบออกจาก API การส่งคืนและการใช้ป้ายเปลือยถูกยกเลิกหากเป็นไปได้
  • เพิ่มการรองรับโปรโตคอล TLS 1.3 การสนับสนุนสำหรับ TLS 1.0, TLS 1.1 และ DTLS 1.0 ถูกยกเลิกแล้ว การสนับสนุนชุดการเข้ารหัส DSA, SRP, SEED, AES-128 OCB, CECPQ1, DHE_PSK และ Camellia CBC, การเข้ารหัสที่ไม่ระบุตัวตน และแฮช SHA-1 ได้ถูกลบออกจากการใช้งาน TLS แล้ว
  • เพิ่มการรองรับอัลกอริธึมการเข้ารหัสหลังควอนตัมของ Kyber ซึ่งสามารถทนทานต่อแรงดุร้ายบนคอมพิวเตอร์ควอนตัม
  • เพิ่มการรองรับอัลกอริธึมการเข้ารหัสหลังควอนตัม Dilithium สำหรับการทำงานกับลายเซ็นดิจิทัล
  • เพิ่มการรองรับรูปแบบจุดโค้งรูปไข่โดยใช้เทคนิค SSWU (draft-irtf-cfrg-hash-to-curve)
  • เพิ่มการรองรับฟังก์ชันแฮชการเข้ารหัส BLAKE2b
  • มีการเสนออินเทอร์เฟซการเขียนโปรแกรมใหม่ T::new_object ที่ส่งคืน Unique_ptr แทนที่จะเป็นตัวชี้ "T*" เปล่า
  • เพิ่มฟังก์ชันและ API ใหม่: X509_DN::DER_encode, Public_Key::get_int_field, Ideal_granularity, required_entire_message, SymmetricAlgorithm::has_keying_material เพิ่มฟังก์ชันใหม่ชุดใหญ่เพื่อใช้ในโค้ด C (C89)
  • การใช้อัลกอริทึม Argon2 จะใช้คำสั่ง AVX2
  • ขนาดของตารางในการใช้งานอัลกอริธึม Camellia, ARIA, SEED, DES และ Whirlpool ลดลง
  • มีการนำเสนอการใช้งาน DES/3DES ใหม่ โดยป้องกันคลาสส่วนใหญ่ของการโจมตีช่องทางด้านข้างที่ประเมินสถานะของแคช
  • การใช้งาน SHACAL2 ได้รับการปรับให้เหมาะสมสำหรับระบบที่ใช้สถาปัตยกรรม ARMv8 และ POWER
  • รหัสสำหรับการคำนวณพาริตีบิต การแปลง bcrypt/base64 และการกำหนดประเภทสตริง ASN.1 เป็นอิสระจากการค้นหาตาราง และตอนนี้เป็นอิสระจากข้อมูลที่กำลังประมวลผล (ทำงานในเวลาคงที่)

ที่มา: opennet.ru

เพิ่มความคิดเห็น