1
ทำลายตัวเลขที่หัก
ฉันได้ออกแบบตัวสร้างแบบสุ่มอย่างง่ายที่วนสองตัวเลขด้วยวิธีที่วุ่นวายโดยใช้วิธีการคูณและโมดูลัส มันใช้งานได้ดีสำหรับการที่ ถ้าฉันจะใช้มันเป็นเครื่องกำเนิดไฟฟ้ารหัส แต่มันจะมีความเสี่ยงต่อการโจมตีธรรมดาที่รู้จักเนื่องจากผู้โจมตีสามารถย้อนกลับวิศวกรเมล็ดจากชุดของตัวเลขสุ่มในลักษณะที่มีประสิทธิภาพในการคำนวณ หากต้องการพิสูจน์ตัวเลขที่เสียหายให้ค้นหาคู่ค่าทางกฎหมายที่สร้างค่า 7 ศูนย์ในหนึ่งแถวในช่วง [0; 255] โดยใช้พลังงานเพียงเล็กน้อยเวลา CPU ฯลฯ เท่าที่จะทำได้ นี่คือตัวสร้างแบบสุ่มที่เขียนใน JavaScript: function seed(state1,state2){ //Constants var mod1=4294967087 var mul1=65539 var mod2=4294965887 var mul2=65537 function random(limit){ //Cycle each state variable 1 step state1=(state1*mul1)%mod1 state2=(state2*mul2)%mod2 //Return a random variable return (state1+state2)%limit } //Return the random function return random } …