คุณไม่จำเป็นต้องมี IV แบบสุ่มหากคุณมีรหัสลับแบบสุ่มที่เปลี่ยนแปลงสำหรับทุกข้อความอยู่แล้ว ดังนั้น คำตอบใดๆ จะไม่ผิดโดยพื้นฐาน เนื่องจากไม่มีข้อกำหนดด้านความปลอดภัยสำหรับ IV อย่างไรก็ตามฉันขอแนะนำให้คุณอ่าน คำตอบนี้ จัดหาโดยหมีที่เป็นมิตรของเราก่อนที่คุณจะพบกับ BEAST ที่เป็นมิตรน้อยกว่า
อย่างไรก็ตาม ฉันจะไม่รวม IV เข้ากับคีย์อินพุต AES ด้วยเหตุผลบางประการ: มันจะไม่เข้ากันได้กับฮาร์ดแวร์ใดๆ หรือ HSM (หรือที่เก็บคีย์อื่นๆ) ที่ทำการรวมคีย์ (เช่น การเข้ารหัสคีย์ด้วยคีย์การรวม กรณีของคุณคือรหัสสาธารณะ RSA) ดังนั้นหากคุณตัดสินใจว่าคุณต้องการสิ่งนั้น คุณจะต้องเปลี่ยนโปรโตคอล มิฉะนั้น คุณจะต้องถอดรหัสและเก็บคีย์ไว้ในซอฟต์แวร์ ความจริงแล้วนี่ไม่ใช่ปัญหาใหญ่ เนื่องจากข้อมูลจะยังคงอยู่ในหน่วยความจำ แต่เป็นสิ่งที่ต้องพิจารณา
หากคุณยืนยันในการสุ่ม IV คุณสามารถใช้เช่น แฮชเหนือคีย์ที่ห่อไว้ (เช่น ข้อความไซเฟอร์เท็กซ์ RSA) เป็น IV หรือคุณสามารถได้มาจากเนื้อหาคีย์ที่ห่อเอง (โดยใช้ Key Derivation Function หรือ KDF) วิธีหลังอาจเป็นหนึ่งในวิธีที่ใช้โดยนักเข้ารหัสลับส่วนใหญ่ที่นี่ แม้ว่าจะเข้าใจและนำไปใช้ได้ยากกว่า (เช่น RSA-KEM จากนั้น HKDF-Extract จากนั้น 2 ครั้ง HKDF-Expand - หนึ่งครั้งสำหรับคีย์ อีกครั้งสำหรับ IV - แม้ว่านี่อาจเข้ากันไม่ได้กับฮาร์ดแวร์จำนวนมากเช่นกัน)
ตามที่ระบุไว้ในความคิดเห็น การมีข้อความยืนยันตัวตนมักจะค่อนข้างสำคัญ ที่มักจะต้องใช้ ลงชื่อเข้าใช้แล้วเข้ารหัสซึ่งมีความเสี่ยงที่จะถูกโจมตีจาก Oracle ทั้ง PKCS#1 และ CBC หากคุณวางแผนที่จะใช้โหมดนั้น หากคุณพิจารณาผู้รับเพียงรายเดียวและการรักษาความลับและความซื่อสัตย์ การเซ็นชื่อแบบเข้ารหัสแล้วอาจทำงานได้ดีกว่าสำหรับคุณ
แน่นอนว่าสิ่งนี้ยังต้องการคู่คีย์ RSA (ที่เชื่อถือได้) ที่ตัวรับ ท้ายที่สุดแล้ว ทั้งหมดเป็นเรื่องของการจัดการคีย์