Score:1

ประสิทธิภาพของ AES CTR + HMAC SHA1

ธง cn

ฉันกำลังทำการทดสอบประสิทธิภาพบน AES ด้วยโหมด CTR และ HMAC SHA1 สำหรับการรับรองความถูกต้องของข้อความ และพบว่า ความเร็ว opensl เครื่องมือสำหรับสิ่งนั้น

ฉันทำการทดสอบหลายครั้งด้วย ความเร็ว openssl -evp sha1 aes-128-ctr aes-128-gcm เพราะฉันต้องการเปรียบเทียบกับโหมด GCM ที่ทำการเข้ารหัสและตรวจสอบข้อความในโหมดเดียว

ตอนนี้คำถามของฉัน: ฉันจะเปรียบเทียบค่าเหล่านี้ได้อย่างไร ค่าของ sha1 เป็นผลจาก "ความเร็ว" ของการรวมกันของ ctr + hmac sha1 เนื่องจากเป็นจุดคอขวดหรือฉันต้องลบค่าทั้งสองนี้ออกเพื่อให้ได้ความเร็วรวมกันของ ctr + hmac sha1

ป้อนคำอธิบายรูปภาพที่นี่

kelalaka avatar
in flag
HMAC-SHA-1 ใช้การเรียกสองครั้งของ SHA-1 อันหนึ่งยาว (เกือบแฮชเท่ากับขนาดข้อความ) และอีกอันสั้น บล็อกเดียวของ SHA1 (512 บิตสำหรับ SHA-1) ข้อความสั้นประสบปัญหาจากการเริ่มต้น คุณอาจต้องพิจารณากรณีจริงของคุณ สำหรับการตีความเอาต์พุต โปรดดูที่ [ฉันจะตีความเอาต์พุตความเร็ว openssl ได้อย่างไร](https://stackoverflow.com/q/17410270/1820553) จาก [so] ส่วนใหญ่เป็นนอกหัวข้อ
Maarten Bodewes avatar
in flag
ไม่มีชุดการเข้ารหัส AES-CTR แม้ว่า CTR จะถูกใช้เป็นเทคโนโลยีพื้นฐานสำหรับ GCM แต่ชุดการเข้ารหัสที่รับรองความถูกต้องของ MAC นั้นใช้ CBC ทั้งหมด แต่น่าเสียดายที่ใช้ MAC-then-encrypt แน่นอนว่า เนื่องจาก CTR และ CBC ใช้การเข้ารหัสแบบบล็อกมากเท่าๆ กัน ความแตกต่างของความเร็ว *ควร* จึงไม่มีความสำคัญสำหรับการใช้งานที่เหมาะสม (แต่ในโลกนี้มีความวิกลจริตอยู่มาก)
kelalaka avatar
in flag
ฉันลงคะแนนให้ปิดคำถามนี้ เนื่องจากคำถามนี้เกี่ยวกับการตีความผลลัพธ์ของไลบรารีการเข้ารหัส มี [ความเร็ว HMAC](https://stackoverflow.com/q/58719049/1820553) บน [ดังนั้น] อยู่แล้ว
Score:0
ธง in

ค่าของ 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 (ซึ่งเกือบจะเป็นจริงทุกประการ แม้ว่าจะต้องประมวลผลข้อมูลเพิ่มขึ้นเล็กน้อยก็ตาม)

Soteri avatar
cn flag
ขอบคุณมากสำหรับคำตอบโดยละเอียดของคุณ สิ่งเดียวที่ฉันไม่เข้าใจคือทำไมคุณถึงเลือกโหมด cbc ฉันเลือก ctr + hmac sha1 เพราะนั่นเป็นค่าเริ่มต้นสำหรับโปรโตคอล srtp
Maarten Bodewes avatar
in flag
อา ขออภัย ฉันคิดว่าคุณใช้ TLS เพราะคุณกำลังอ้างอิงถึง OpenSSL ตอนนี้ฉันมีเวลาไม่มาก คุณช่วยนำคำตอบที่ได้รับไปคำนวณผลรวมได้ไหม ฉันคิดว่าโปรโตคอลส่วนใหญ่จะไม่มัลติเธรดสำหรับการเชื่อมต่อเฉพาะ ดังนั้นในกรณีนี้ควรเป็นวิธีที่ถูกต้องในการคำนวณความเร็ว

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา