สมมติว่าคุณกำลังทำสิ่งนี้ในเครื่อง (เพื่อไม่ให้สัญญาณรบกวนเครือข่าย) และทราบรายละเอียดเฉพาะของโปรเซสเซอร์ของคุณด้วย
ตกลง. นี่เป็นรูปแบบการโจมตีที่น่าเชื่อถือ ตัวอย่างเช่น หากผู้โจมตีเรียกใช้โฆษณา JavaScript ในเบราว์เซอร์ของคุณ หรือมีเครื่องเสมือนที่อยู่บนคลาวด์เดียวกัน
เป็นไปได้หรือไม่ที่จะค้นหาคีย์ส่วนตัว (ในขณะที่เข้าถึงคีย์สาธารณะ) ที่สร้างโดย libsodium ตามเวลาที่ใช้ในการสร้างคู่คีย์
การใช้ลิโซเดียม Curve25519 แป้นโค้งวงรี คีย์ส่วนตัว Curve25519 เป็นบิตสตริงแบบสุ่มที่มีความยาวที่กำหนด (ขยายเป็นสตริงไบต์โดยที่บางบิตมีค่าคงที่ แต่ไม่ได้เพิ่มแชนเนลด้านเวลา) ดังนั้นกระบวนการสร้างคีย์ส่วนตัวจึงเป็นเรื่องเล็กน้อย ช่องด้านข้างที่เป็นไปได้เพียงอย่างเดียวคือในตัวสร้างแบบสุ่ม
อัลกอริธึมการสร้างแบบสุ่มบางประเภทใช้สิ่งดั้งเดิมที่ไวต่อช่องทางด้านเวลา โดยเฉพาะอย่างยิ่ง CTR_DRBG อาศัย AES ซึ่งเสี่ยงต่อการถูกโจมตีด้วยเวลาแคชหากนำไปใช้ในซอฟต์แวร์ด้วยวิธีที่รวดเร็วไร้เดียงสา CTR_DRBG หมุนคีย์ AES บ่อยมาก ซึ่งทำให้ค่อนข้างเสี่ยงน้อยกว่าในสถานการณ์ที่ฝ่ายตรงข้ามสามารถสังเกตการเข้ารหัสด้วยคีย์ AES เดียวกัน อย่างไรก็ตาม, การโจมตีดังกล่าวสามารถนำไปใช้ได้จริง อย่างน้อยก็ในสภาวะที่เหมาะสม.
ด้วยอัลกอริทึม DRBG ที่เป็นที่นิยมอื่นๆ (เช่น Hash_DRBG หรือ HMAC_DRBG) ด้วยการใช้งาน AES ที่ไม่ใช่ตาราง (เช่นใช้การเร่งฮาร์ดแวร์ เช่น AES-NI หรือการใช้การแบ่งบิตในซอฟต์แวร์) หรือถ้า DRBG อ่านเอนโทรปีบ่อยพอ (ซึ่งเป็นไปได้ในฮาร์ดแวร์สมัยใหม่ที่มี TRNG เฉพาะ เช่น RDRAND บนโปรเซสเซอร์ Intel หรือเทียบเท่าบนสมาร์ทโฟนต่างๆ โปรเซสเซอร์) การโจมตีตามเวลาบน RNG ไม่ใช่เรื่องที่ต้องกังวล
สิ่งที่อาจมีความเสี่ยงมากกว่าคือการคำนวณคีย์สาธารณะจากคีย์ส่วนตัว Curve25519 ทำให้การนำเลขคณิตไปใช้ค่อนข้างง่ายโดยไม่ต้องใช้แชนเนลด้านเวลา แต่ก็ไม่ได้กำหนดไว้
แล้วอัลกอริทึมอื่น ๆ เป็นไปได้อย่างไรโดยทั่วไป?
ด้วยเส้นโค้งวงรี Weierstrass และด้วยฟิลด์จำกัด Diffie-Hellman ไพรเวตคีย์คือตัวเลขระหว่าง $2$ และ $P-2$. นอกเหนือจากการโจมตี RNG ตามที่กล่าวไว้ก่อนหน้านี้ การนำกระบวนการสร้างคีย์ไปใช้ตามธรรมชาตินั้นไม่ไวต่อการโจมตีแบบกำหนดเวลา อย่างไรก็ตามการคำนวณคีย์สาธารณะ เป็น เสี่ยงต่อการถูกโจมตีตามเวลาหากดำเนินการโดยไม่มีการป้องกัน
ด้วย RSA การสร้างคีย์เป็นกระบวนการที่ซับซ้อนซึ่งเกี่ยวข้องกับการทดสอบเบื้องต้น (หลอก) และการคำนวณทางคณิตศาสตร์เพิ่มเติมที่อาจเสี่ยงต่อการถูกโจมตีด้วยเวลา โดยเฉพาะในทางปฏิบัติดูเหมือนว่า ขั้นตอนที่เสี่ยงต่อการรั่วไหลมากที่สุดคือการคำนวณ GCD ทำเพื่อตรวจสอบว่า $p-1$ และ $q-1$ อยู่ร่วมกับผู้นำสาธารณะ