ฉันสามารถใช้เอนโทรปี (อ่อน) ในเอนโทรปีของ FPGA ได้หรือไม่?


12

ฉันทำงานกับแพลตฟอร์ม IoT ใน FPGA สำหรับการประเมินผลและการสร้างต้นแบบ ฉันต้องให้การสนับสนุน TLS และฉันต้องการแหล่งข้อมูลเอนโทรปี

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

ฉันมีแชนเนล I / O มาตรฐาน (uart, I2C และอื่น ๆ ) เท่านั้นไม่มีอะไรที่ดูเหมือนว่าจะให้ PRBS ได้มากเท่าที่ควร - ยกเว้นเสียงอินพุต ADC อาจมีเทคนิคที่น่าเชื่อถือในการสร้างเอนโทรปีใน FPGA ที่ฉันควรพิจารณาหรือไม่?

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

มันก็โอเคถ้าแหล่งเอนโทรปีที่ฉันลงท้ายด้วยไม่ปลอดภัยอย่าง crypto (เพราะนี่เป็นแค่ต้นแบบ) แต่ฉันต้องการที่จะเข้าใจการแลกเปลี่ยนที่คุ้มค่า

คำตอบ:


6

คุณต้องการที่จะ คุณสามารถใช้เครื่องกำเนิดไฟฟ้าแบบสุ่มที่มีความปลอดภัยเข้ารหัสหากคุณมีสองสิ่ง: ที่เก็บข้อมูลที่ปลอดภัยที่เขียนซ้ำได้และเมล็ดเริ่มต้น นั่นคือเพียงพอที่จะเพาะเมล็ด RNG เพียงครั้งเดียวจากนั้นบันทึกสถานะและปลดออกจากสถานะที่บันทึกไว้ มันไม่เหมาะหรอกมันจะเป็นการดีกว่าถ้าจะผสมในเอนโทรปีเป็นระยะ ๆ แต่มันก็โอเค

คุณต้องมีที่เก็บข้อมูลที่ปลอดภัยที่เขียนซ้ำได้ หากอุปกรณ์นั้นมีหน่วยความจำ ROM และที่ไม่ปลอดภัยเท่านั้นจึงไม่สามารถใช้วิธีการนี้ได้ จะต้องมีสถานที่ที่คุณสามารถเก็บสถานะ RNG ในแบบที่ศัตรูของคุณไม่สามารถอ่านหรือแก้ไขได้

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

การฉีดเอนโทรปีเริ่มต้นสามารถเกิดขึ้นได้ในระหว่างการผลิตหรือเมื่อมีการตั้งค่าอุปกรณ์ โดยปกติสิ่งเหล่านี้เกิดขึ้นกับการเชื่อมต่อกับพีซีซึ่งสามารถสร้างเอนโทรปีในนามของอุปกรณ์


ตกลงดังนั้นในบริบทนี้ฉันไม่คิดว่าที่เก็บข้อมูลจำเป็นต้องมีความปลอดภัยเนื่องจากรูปแบบการใช้งานไม่ใช่ผลิตภัณฑ์สำหรับผู้บริโภคผู้โจมตีใด ๆ สามารถสันนิษฐานได้ว่าไม่สามารถเข้าถึงอุปกรณ์ของฉันได้ (แม้ว่าอาจมีอุปกรณ์เหมือนกัน) . ดังนั้นฉันไม่สามารถป้องกันการโคลน
Sean Houlihane
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.