ค่าของ sha1 เป็นผลจาก "ความเร็ว" ของการรวมกันของ ctr + hmac sha1 เนื่องจากเป็นจุดคอขวดหรือฉันต้องลบค่าทั้งสองนี้ออกเพื่อให้ได้ความเร็วรวมกันของ ctr + hmac sha1
ก่อนอื่น คุณควรใช้ AES-CBC เพื่อให้แน่ใจว่าคุณใช้อัลกอริทึมที่ผสมผสานกันอย่างเหมาะสม AES-CBC ช้ากว่า AES-CTR ในเครื่องของฉันมาก อาจเกิดจากการบัฟเฟอร์ เป็นไปได้ที่จะคำนวณส่วนใหญ่ของคีย์สตรีมล่วงหน้าสำหรับ AES-CTR
แพ็กเก็ต TLS มักมีขนาดประมาณ 1.5 K ดังนั้นคุณสามารถใช้บล็อกขนาด 1024 ไบต์เป็นตัวบ่งชี้ที่ดีที่สุด ฉันได้ทำการทดสอบความเร็วด้วย SHA-1, AES-CBC และ AES-GCM แล้ว
ลองใช้ค่าต่อไปนี้:
SHA-1 (แทน HMAC-SHA-1): 1467708 kB/s
AES-CBC : 1330523 กิโลไบต์/วินาที
AES-GCM : 3346640 ก
แทนที่จะใช้ GB/s คุณควรดูที่ ns ต่อ kB ด้วยวิธีนี้ คุณสามารถเพิ่มเวลาในการประมวลผลเข้าด้วยกันแล้วคำนวณกลับเป็น GB/s ตามที่คุณต้องการ
ตอนนี้เราสามารถคำนวณความเร็วของ SHA-1 + CBC ได้โดยดำเนินการ:
$$T_{SHA-1\&CBC} = {1 \over {1 \over T_{SHA-1}} + {1 \over T_{AES-CBC}}}$$
ที่ไหน $T$ คือความเร็วในการถ่ายโอนหน่วยเป็นไบต์ต่อวินาที
ซึ่งจะส่งผลให้มีค่าต่อไปนี้: 697876kB/s สำหรับ SHA-1 + AES-CBCนั่นหมายความว่า AES-GCM เร็วกว่า SHA-1 + AES-CBC ประมาณ 4.8 เท่าสำหรับการใช้งานแบบปกติที่ไม่มีเธรด นี่คือสมมติฐานว่า HMAC มีความเร็วเท่ากับ SHA-1 (ซึ่งเกือบจะเป็นจริงทุกประการ แม้ว่าจะต้องประมวลผลข้อมูลเพิ่มขึ้นเล็กน้อยก็ตาม)