การเข้ารหัส SHA และ AES แตกต่างกันอย่างไร
การเข้ารหัส SHA และ AES แตกต่างกันอย่างไร
คำตอบ:
SHA ไม่ใช่การเข้ารหัส แต่เป็นฟังก์ชันแฮชทางเดียว AES (Advanced_Encryption_Standard) เป็นมาตรฐานการเข้ารหัสแบบสมมาตร
SHAเป็นตระกูล "Secure Hash Algorithms" ที่ได้รับการพัฒนาโดยสำนักงานความมั่นคงแห่งชาติ ขณะนี้มีการแข่งขันระหว่างตัวเลือกมากมายว่าใครจะเป็นSHA-3อัลกอริทึมแฮชใหม่สำหรับปี 2012+
คุณใช้ฟังก์ชัน SHA เพื่อถ่ายเอกสารขนาดใหญ่และคำนวณ "สรุป" (หรือเรียกว่า "แฮช") ของอินพุต สิ่งสำคัญคือต้องตระหนักว่านี่เป็นกระบวนการทางเดียว คุณไม่สามารถย่อยและกู้คืนเอกสารต้นฉบับได้
AES , Advanced Encryption Standard คืออัลกอริทึมบล็อกสมมาตร ซึ่งหมายความว่าต้องใช้บล็อก 16 ไบต์และเข้ารหัส เป็นแบบ "สมมาตร" เนื่องจากคีย์อนุญาตให้เข้ารหัสและถอดรหัสได้
UPDATE: Keccakได้รับการเสนอชื่อให้เป็นผู้ชนะ SHA-3 เมื่อวันที่ 2 ตุลาคม 2555
SHA และ AES มีจุดประสงค์ที่แตกต่างกัน SHA ใช้ในการสร้างแฮชของข้อมูลและ AES ใช้ในการเข้ารหัสข้อมูล
นี่คือตัวอย่างของเวลาที่แฮช SHA มีประโยชน์สำหรับคุณ สมมติว่าคุณต้องการดาวน์โหลดอิมเมจ DVD ISO ของ Linux distro บางตัว ไฟล์นี้เป็นไฟล์ขนาดใหญ่และบางครั้งก็ผิดพลาด - ดังนั้นคุณต้องตรวจสอบว่าสิ่งที่คุณดาวน์โหลดมานั้นถูกต้อง สิ่งที่คุณต้องทำคือไปที่แหล่งที่เชื่อถือได้ (เช่นจุดดาวน์โหลด distro อย่างเป็นทางการ) และโดยทั่วไปแล้วพวกเขาจะมีแฮช SHA สำหรับอิมเมจ ISO ที่พร้อมใช้งาน ตอนนี้คุณสามารถสร้างแฮช SHA ที่เทียบเคียงได้ (โดยใช้เครื่องมือเปิดจำนวนเท่าใดก็ได้) สำหรับข้อมูลที่ดาวน์โหลดของคุณ ขณะนี้คุณสามารถเปรียบเทียบแฮชทั้งสองเพื่อให้แน่ใจว่าตรงกันซึ่งจะตรวจสอบได้ว่ารูปภาพที่คุณดาวน์โหลดมานั้นถูกต้อง นี่เป็นสิ่งสำคัญอย่างยิ่งหากคุณได้รับอิมเมจ ISO จากแหล่งที่ไม่น่าเชื่อถือ (เช่น torrent) หรือหากคุณมีปัญหาในการใช้ ISO และต้องการตรวจสอบว่าภาพเสียหายหรือไม่
ดังที่คุณเห็นในกรณีนี้ SHA ถูกใช้เพื่อตรวจสอบความถูกต้องของข้อมูลที่ไม่เสียหาย คุณมีสิทธิ์ทุกอย่างในการดูข้อมูลใน ISO
ในทางกลับกัน AES ใช้เพื่อเข้ารหัสข้อมูลหรือป้องกันไม่ให้ผู้อื่นดูข้อมูลนั้นโดยรู้ความลับบางอย่าง
AES ใช้คีย์ที่ใช้ร่วมกันซึ่งหมายความว่าจะใช้คีย์เดียวกัน (หรือคีย์ที่เกี่ยวข้อง) เพื่อเข้ารหัสข้อมูลตามที่ใช้ในการถอดรหัสข้อมูล ตัวอย่างเช่นถ้าฉันเข้ารหัสอีเมลโดยใช้ AES และฉันส่งอีเมลนั้นถึงคุณคุณและฉันทั้งคู่จะต้องรู้คีย์ที่ใช้ร่วมกันที่ใช้ในการเข้ารหัสและถอดรหัสอีเมล ซึ่งแตกต่างจากอัลกอริทึมที่ใช้คีย์สาธารณะเช่น PGP หรือ SSL
หากคุณต้องการรวมเข้าด้วยกันคุณสามารถเข้ารหัสข้อความโดยใช้ AES จากนั้นส่งแฮช SHA1 ของข้อความที่ไม่ได้เข้ารหัสเพื่อให้เมื่อข้อความถูกถอดรหัสพวกเขาจะสามารถตรวจสอบความถูกต้องของข้อมูลได้ นี่เป็นตัวอย่างที่ค่อนข้างสร้างขึ้น
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับคำค้นหา Wikipedia เหล่านี้ (นอกเหนือจาก AES และ SHA) ที่คุณต้องการลอง ได้แก่ :
อัลกอริธึมคีย์สมมาตร (สำหรับ AES) ฟังก์ชันแฮชการเข้ารหัส (สำหรับ SHA) การเข้ารหัสคีย์สาธารณะ (สำหรับ PGP และ SSL)
SHA เป็นฟังก์ชันแฮชและ AES เป็นมาตรฐานการเข้ารหัส เมื่อระบุอินพุตคุณสามารถใช้ SHA เพื่อสร้างเอาต์พุตซึ่งไม่น่าจะเกิดจากอินพุตอื่น ๆ นอกจากนี้ข้อมูลบางส่วนจะสูญหายไปในขณะที่ใช้ฟังก์ชันดังนั้นแม้ว่าคุณจะรู้วิธีสร้างอินพุตที่ให้ผลลัพธ์เดียวกัน แต่อินพุตนั้นก็ไม่น่าจะเป็นข้อมูลเดียวกับที่ใช้ในตอนแรก ในทางกลับกัน AES มีขึ้นเพื่อป้องกันการเปิดเผยต่อบุคคลที่สามข้อมูลใด ๆ ที่ส่งระหว่างสองฝ่ายที่ใช้คีย์เข้ารหัสเดียวกัน ซึ่งหมายความว่าเมื่อคุณทราบคีย์เข้ารหัสและเอาต์พุต (และ IV ... ) แล้วคุณจะกลับไปที่อินพุตดั้งเดิมได้อย่างราบรื่น โปรดสังเกตว่า SHA ไม่ต้องการอะไรเลยนอกจากต้องใช้อินพุตในขณะที่ AES ต้องการอย่างน้อย 3 สิ่งที่คุณกำลังเข้ารหัส / ถอดรหัสคีย์การเข้ารหัสและเวกเตอร์การเริ่มต้น (IV)
SHA ย่อมาจาก Secure Hash Algorithm ในขณะที่ AES ย่อมาจาก Advanced Encryption Standard ดังนั้น SHA จึงเป็นชุดของอัลกอริทึมการแฮช ในทางกลับกัน AES คือการเข้ารหัสที่ใช้ในการเข้ารหัส อัลกอริทึม SHA (SHA-1, SHA-256 และอื่น ๆ ... ) จะรับอินพุตและสร้างไดเจสต์ (แฮช) ซึ่งโดยทั่วไปจะใช้ในกระบวนการเซ็นชื่อดิจิทัล (สร้างแฮชของไบต์บางส่วนและเซ็นชื่อด้วยคีย์ส่วนตัว) .
SHA ไม่ต้องการอะไรเลยนอกจากต้องใช้อินพุตในขณะที่ AES ต้องการอย่างน้อย 3 สิ่งคือสิ่งที่คุณเข้ารหัส / ถอดรหัสคีย์การเข้ารหัสและเวกเตอร์การเริ่มต้น