Score:1

PRNG สำหรับ RSA (ANSI_X9.31)

ธง ng

ฉันมีคำถาม โปรด ฉันต้องการทราบวิธีสร้างตัวเลขสุ่มโดยใช้ อัลกอริทึม ANSI_X9.31 สำหรับ อัลกอริทึม RSA โปรด . ขอบคุณ

SAI Peregrinus avatar
si flag
ANSI X9.31 เลิกใช้แล้วและไม่ได้รับอนุญาตใน FIPS 140-2 อีกต่อไป ไม่จำเป็นต้องสร้างคีย์ใหม่ในรูปแบบนี้
Mohamed Amine avatar
ng flag
ขอขอบคุณสำหรับความช่วยเหลือ. โปรดบอกฉันว่าวิธีใดที่ใช้ในการสร้างหมายเลขเฉพาะแบบสุ่มสำหรับอัลกอริทึม RSA
SAI Peregrinus avatar
si flag
ไลบรารีการเข้ารหัสของคุณจะสร้างคีย์ให้คุณ ไม่จำเป็นต้องสร้างจำนวนเฉพาะแบบสุ่มด้วยตัวคุณเอง ฉันไม่ต้องการให้คำแนะนำที่จะให้ผู้ใช้ใช้โซลูชันที่ไม่ปลอดภัย คำถามเกี่ยวกับการเขียนโปรแกรมส่วนใหญ่อยู่นอกหัวข้อที่นี่
Mohamed Amine avatar
ng flag
ฉันกำลังทำงานวิจัยนี้ เป้าหมายคือวิชาการ ผมไม่มีเจตนาอื่นใด ขอบคุณครับ
SAI Peregrinus avatar
si flag
จากนั้นคุณสามารถใช้ OpenSSL เวอร์ชันเก่าเพื่อสร้างคีย์ในรูปแบบที่ถูกต้อง
Maarten Bodewes avatar
in flag
โปรดทราบว่า @SAIPeregrinus กำลังพูดถึงการสร้างจำนวนเฉพาะจากตัวสร้างตัวเลขสุ่ม คำถามของคุณถามถึงการสร้างตัวเลขสุ่มทั่วไป แต่นั่นไม่แตกต่างจาก RNG อื่น ๆ สำหรับอัลกอริทึมการสร้างคีย์ใด ๆ คุณใช้อุปกรณ์ที่แข็งแกร่ง / ได้รับการรับรอง FIPS สำหรับสิ่งนั้น ฉันเดาว่าคุณกำลังพูดถึงการสร้างจำนวนเฉพาะ
Score:1
ธง ng

ANSÂ X9.31:1988 ลายเซ็นดิจิทัลโดยใช้คีย์สาธารณะแบบย้อนกลับได้ การเข้ารหัสสำหรับอุตสาหกรรมบริการทางการเงิน (rDSA) (ตามชื่อในสำเนาของฉันที่ซื้อในศตวรรษที่แล้ว) เริ่มขึ้นใน

มาตรฐานนี้ดัดแปลงมาจาก ISO/IEC 9796-2 และ ISO/IEC 14888-3กำหนดวิธีการสำหรับการสร้างลายเซ็นดิจิทัล (ลายเซ็น) และการตรวจสอบสำหรับการป้องกันข้อความและข้อมูลทางการเงินโดยใช้ระบบเข้ารหัสคีย์สาธารณะแบบย้อนกลับได้โดยไม่มีการกู้คืนข้อความ นอกจากนี้ มาตรฐาน rDSA นี้ยังระบุเกณฑ์สำหรับการสร้างคีย์สาธารณะและคีย์ส่วนตัวที่จำเป็นโดยอัลกอริทึมและการควบคุมขั้นตอนที่จำเป็นสำหรับการใช้อัลกอริทึมอย่างปลอดภัย

รูปแบบลายเซ็นยังคงมีการอ้างอิง (ไม่ได้อธิบาย) ใน FIPS 186-4. เมื่อสร้างอินสแตนซ์ด้วย SHA-1, RSA และ $n$ ของ $8k$บิตข้อความ $m$ มีเบาะเป็น $8k-1$-นิดหน่อย $$R\gets\mathtt{6B}\,\mathtt{BB}\,\mathtt{BB}\ldots\mathtt{BB}\,\mathtt{BA}\mathbin\|\operatorname{SHA-1}( ม)\|\mathtt{33}\,\mathtt{CC}$$ แล้วลายเซ็นเป็น $k$-byte big-endian ตัวแทนของ$$\Sigma\gets\min((R^d\bmod n),n-(R^d\bmod n))$$ การตรวจสอบเทียบเท่ากับการตรวจสอบลายเซ็นคือ $k$-byte และการเข้ารหัสในการแทน big-endian เป็นจำนวนเต็ม $\ซิกม่า'$ กับ $0\le\Sigma'<n/2$,คอมพิวเตอร์ $R'\gets{\Sigma'}^e\bmod n$,คอมพิวเตอร์ $R$ จาก $m$ ดังกล่าวแล้วตรวจสอบ $R'$ เป็นหนึ่งใน $R$ หรือ $n-R$ (คิดว่าไม่ค่อยเป็นมาตรฐานเท่าไหร่)

มาตรฐานนั้นจับไม่ได้เกือบเท่า RSASSA-PKCS1-v1_5ซึ่งใช้ช่องว่างภายในที่แตกต่างกันเล็กน้อย ไม่ใช้ $\นาที$ เคล็ดลับและกำจัดบทบัญญัติสำหรับคู่ $e$ (ไม่ได้อธิบายไว้ในข้างต้นเพื่อให้เข้าใจได้ง่าย)

รูปแบบการสร้างคีย์ถูกแทนที่ด้วย FIPSÂ 186-4 ภาคผนวก B3.

นอกจากนี้ยังมี "ภาคผนวก A: การสร้างตัวเลขแบบสุ่ม" ที่อ้างถึงบ่อยครั้ง มันถูกฝังอย่างเป็นทางการโดย FIPSÂ 186-4:

ANS X9.31 มีภาคผนวกเกี่ยวกับการสร้างตัวเลขสุ่ม อย่างไรก็ตาม การใช้งาน ANS X9.31 จะต้องใช้วิธีการสร้างตัวเลขสุ่มที่ได้รับอนุมัติ

ไม่ชัดเจนจากเนื้อหาของคำถามที่เกี่ยวข้องกับสิ่งที่ถาม ถ้าเป็นเช่นนั้นโปรดบอกว่าส่วนย่อยใดในความคิดเห็น หากไม่ทราบให้ลืมและใช้ /dev/urandom หรือเทียบเท่าในเครื่อง

โพสต์คำตอบ

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