Score:0

คีย์ AES เทียบกับคีย์ RSA

ธง in

ฉันยังใหม่กับการเข้ารหัสและเพิ่งพยายามทำความเข้าใจให้ละเอียดยิ่งขึ้น คำถามของฉันคือ: การสร้างคีย์แตกต่างกันอย่างไรในกรณีของ AES และ RSA ฉันเข้าใจว่าคีย์สาธารณะและคีย์ส่วนตัวของ RSA สามารถได้รับมาอย่างตรงไปตรงมาด้วยโมดูโลเวท

สิ่งที่ฉันเข้าใจ (อย่างน้อยฉันก็หวังว่า) มีดังต่อไปนี้:

คู่คีย์ (ส่วนตัวและสาธารณะ) เชื่อมต่ออย่างแน่นหนากับอัลกอริทึม RSA หรือที่เรียกว่าการเข้ารหัส/ถอดรหัสสิ่งต่างๆ

สิ่งที่ฉันไม่เข้าใจคือ:

ในกรณีของ AES ฉันไม่เข้าใจ เว็บไซต์ที่ฉันปรึกษาเพื่อการศึกษาอธิบายเพียงอัลกอริทึมเท่านั้น แต่ไม่ได้อธิบายถึงวิธีการสร้างคีย์และเงื่อนไขที่ต้องปฏิบัติตามเพื่อที่จะ เหมาะสำหรับ AES

ดังนั้นคำถามของฉันคือ:

คีย์/คู่คีย์โดยเนื้อแท้ (วิธีสร้าง) ควบคู่กับอัลกอริทึม หรือเป็นกรณีนี้สำหรับ RSA เท่านั้น ถ้าเป็นเช่นนั้น คีย์ต้องมี 'รูปแบบ' ใดในกรณีของ AES

ขอบคุณแล้ว!

kelalaka avatar
in flag
ยินดีต้อนรับสู่ Cryptography.SE. เป็นการดีกว่าที่จะให้แหล่งที่มาของความสับสนของคุณ AES และ RSA นั้นแตกต่างกัน ดู[การสร้างคีย์ RSA](https://crypto.stackexchange.com/search?q=RSA+key+generation) และคีย์ AES จะถูกเลือกแบบสุ่มอย่างสม่ำเสมอเช่นเดียวกับการเข้ารหัสบล็อกทั้งหมด
Score:4
ธง gb

AES เป็นอัลกอริธึมคีย์สมมาตร ซึ่งหมายความว่ามีเพียงคีย์เดียวที่ใช้ทั้งเข้ารหัสและถอดรหัส สิ่งนี้แตกต่างจาก RSA ที่คุณมีสองคีย์ - คีย์ส่วนตัวและคีย์สาธารณะที่เกี่ยวข้องในลักษณะเฉพาะ

คีย์ AES เป็นเพียงไบต์แบบสุ่ม ตัวอย่างเช่น AES-128 ใช้คีย์ 128 บิต (16 ไบต์) ดังนั้นจึงสามารถใช้ 128 บิตแบบสุ่มเป็นคีย์ AES-128 ได้ ไม่จำเป็นต้องมีรูปแบบอื่นใด

คีย์ AES เช่นนี้จะเปลี่ยนเป็นคีย์กลมหลายคีย์โดยใช้ กำหนดการที่สำคัญซึ่งเป็นส่วนหนึ่งของอัลกอริทึม

Score:1
ธง cn

อัลกอริทึมการเข้ารหัสแบ่งออกเป็นสองกลุ่มใหญ่ ๆ ได้แก่ สมมาตรและไม่สมมาตร อัลกอริทึมจากกลุ่มแรกใช้คีย์เดียวซึ่งต้องเก็บเป็นความลับ อัลกอริทึมจากกลุ่มที่สองใช้คีย์ที่แตกต่างกันสองคีย์ ^ หนึ่งในนั้นจะต้องเก็บเป็นความลับเช่นกัน แต่อันที่สองเป็นสาธารณะ

AES เป็นการเข้ารหัสแบบสมมาตร กล่าวคือ ใช้คีย์เดียวสำหรับการเข้ารหัสและถอดรหัส (ทุกคนที่รู้คีย์ สามารถถอดรหัสข้อความได้) โดยทั่วไปในการเข้ารหัสแบบสมมาตร (ในการเข้ารหัสสมัยใหม่) ข้อจำกัดเดียวสำหรับคีย์คือขนาดของคีย์ ตัวอย่างเช่น AES รองรับคีย์ 128, 192 และ 256 บิต โดยปกติแล้ว จำเป็นต้องเลือกคีย์อย่างเท่าเทียมกันจากชุดของค่าที่เป็นไปได้ทั้งหมด*
หมายเหตุ: ชุดของค่าที่เป็นไปได้ทั้งหมดของคีย์ที่กำหนดโดยอัลกอริทึม สำหรับ AES-128 เป็นชุดของเวกเตอร์ 128 บิตทั้งหมด $\mathbb{F}_2^{128}$และสำหรับ Caesar cipher มันเป็นเพียงตัวเลขตั้งแต่ 0 ถึง 26 - $\mathbb{F}_{27}$.
อัลกอริธึมสมมาตรที่เป็นรูปธรรมกำหนดชุดของค่าคีย์ที่เป็นไปได้สำหรับการเข้ารหัสสมัยใหม่ มักจะเป็นไบนารี่เวกเตอร์ที่มีขนาดแน่นอน**

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


* - อัลกอริทึมที่เป็นไปได้อาจต้องการข้อจำกัดเพิ่มเติมเกี่ยวกับอัลกอริทึมการสร้างคีย์เพื่อให้ระดับความปลอดภัยที่จำเป็น (เช่น มีอัลกอริทึมบางประเภทที่ใช้คีย์ที่แตกต่างกันและเป็นอิสระจากกันสองคีย์) แต่โดยทั่วไปแล้ว คีย์จะต้องเลือกอย่างเท่าเทียมกันจากทั้งหมดที่เป็นไปได้ ค่า

** - มีข้อจำกัดบางประการเกี่ยวกับคีย์ที่ตั้งค่าไว้สำหรับอัลกอริทึมบางอย่าง เนื่องจากมีคีย์ที่อ่อนแออยู่ คีย์เหล่านี้สร้างคีย์กลมเดียวกันสำหรับแต่ละรอบ แต่ไม่ใช่ทุกอัลกอริทึมที่มี

Score:0
ธง si

คำตอบนี้เกี่ยวกับข้อความของคุณโดยเฉพาะ "â¦.the RSA-algorithm หรือที่รู้จักกันว่าสิ่งต่างๆ ถูกเข้ารหัส/ถอดรหัส" โดยปกติแล้ว RSA จะไม่ใช้สำหรับการเข้ารหัส และเมื่อเป็นเช่นนั้น ก็ไม่ได้เป็นเพียงอัลกอริทึม RSA เท่านั้น AES ไม่ได้ใช้เพียงอย่างเดียวสำหรับการเข้ารหัสเช่นกัน!

AES เป็นอัลกอริธึมคีย์สมมาตร โดยเฉพาะรหัสบล็อก ใช้คีย์และบล็อกอินพุต และสร้างบล็อกเอาต์พุต การใช้คีย์เดียวกันบนบล็อกเอาต์พุตจะสร้างบล็อกอินพุตดั้งเดิม ด้วย AES บล็อกจะมีขนาด 128 บิต (16 ไบต์) คีย์คือ 128, 192 หรือ 256 บิต พวกเขาจะต้องได้รับเลือกอย่างสม่ำเสมอโดยการสุ่ม แต่นอกเหนือจากนั้นไม่มีข้อจำกัดใดๆ

สามารถใช้ AES เพื่อสร้างโครงร่างการเข้ารหัสได้ แต่โดยตัวมันเองจะไม่ใช้สำหรับการเข้ารหัส เนื่องจากมันสามารถเข้ารหัสบล็อกขนาด 16 ไบต์เดียวเท่านั้นอย่างปลอดภัย! จะต้องใช้ใน "โหมดการทำงาน" เพื่อเข้ารหัสสิ่งที่ใหญ่กว่าหรือเล็กกว่า 16 ไบต์อย่างมีประโยชน์ นอกจากนี้ยังสามารถใช้ AES เพื่อสร้างฟังก์ชันแฮชการเข้ารหัส (ไม่มีแฮชทั่วไปทำเช่นนี้ แต่ AES-แฮช ถูกเสนอ) รหัสยืนยันข้อความ (AES-CMAC), ฟังก์ชันการรับคีย์ (NIST สป.800-108 อธิบายว่าอย่างไร) และอื่นๆ ดังนั้นจึงเป็นเรื่องผิดที่จะถือว่า AES (หรือรหัสบล็อกอื่นๆ) เป็นเพียงฟังก์ชันการเข้ารหัส แม้ว่าจะมีคำว่า "การเข้ารหัส" อยู่ในชื่อก็ตาม

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

เช่นเดียวกับ AES RSA ไม่ได้ถูกใช้ในการเข้ารหัส ต้องใช้กับ "รูปแบบการเติม" สำหรับการเข้ารหัส ถึงอย่างนั้น มันค่อนข้างช้าและจำกัดการเข้ารหัสครั้งละสองสามร้อยไบต์สำหรับขนาดคีย์ที่ใช้งานได้จริง RSA มักใช้เพื่อสร้างรูปแบบลายเซ็น (อีกครั้งกับรูปแบบช่องว่างภายใน) แม้ว่าบางครั้งจะใช้เพื่อสร้างกลไกการแลกเปลี่ยนคีย์เพื่อแลกเปลี่ยนคีย์สมมาตร (เช่น สำหรับใช้กับ AES ในโหมดการทำงานของ Galois Counter)

โพสต์คำตอบ

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