การเข้ารหัสคืออะไรและทำงานอย่างไร
การเข้ารหัสมีประวัติอันยาวนานย้อนหลังไปถึงเมื่อชาวกรีกและโรมันโบราณส่งข้อความลับโดยการเปลี่ยนตัวอักษรเพียงถอดรหัสด้วยรหัสลับ เข้าร่วมกับเราเพื่อเรียนรู้ประวัติย่อและเรียนรู้เพิ่มเติมเกี่ยวกับการทำงานของการเข้ารหัส.
ใน HTG Explains ฉบับวันนี้เราจะให้ประวัติย่อของการเข้ารหัสวิธีการทำงานและตัวอย่างของการเข้ารหัสชนิดต่าง ๆ - ตรวจสอบให้แน่ใจว่าคุณได้ตรวจสอบรุ่นก่อนหน้าซึ่งเราอธิบายว่าทำไม geeks หลายคนเกลียดอินเทอร์เน็ต สำรวจ.
ภาพโดย xkcd, อย่างชัดเจน.
ยุคแรกของการเข้ารหัส
ชาวกรีกโบราณใช้เครื่องมือที่เรียกว่า Scytale เพื่อช่วยเข้ารหัสข้อความของพวกเขาอย่างรวดเร็วยิ่งขึ้นโดยใช้รหัสการโอนย้าย - พวกเขาก็จะพันแถบกระดาษรอบ ๆ ทรงกระบอกเขียนข้อความและเมื่อไม่คลายจะไม่สมเหตุสมผล.
แน่นอนว่าวิธีการเข้ารหัสนี้อาจเสียได้ง่าย แต่เป็นหนึ่งในตัวอย่างแรกของการเข้ารหัสที่ใช้จริงในโลกแห่งความเป็นจริง.
Julius Caesar ใช้วิธีการที่ค่อนข้างคล้ายกันในช่วงเวลาของเขาโดยการเลื่อนตัวอักษรแต่ละตัวไปทางขวาหรือซ้ายตามจำนวนตำแหน่ง - เทคนิคการเข้ารหัสที่รู้จักกันในชื่อตัวเลขของ Caesar ตัวอย่างเช่นการใช้รหัสตัวเลขด้านล่างคุณจะเขียน“ GEEK” เป็น“ JHHN”.
ธรรมดา: ABCDEFGHIJKLMNOPQRSTUVWXYZ
รหัส: DEFGHIJKLMNOPQRSTUVWXYZABC
เนื่องจากมีเพียงผู้รับข้อความที่รู้รหัสเท่านั้นมันจึงเป็นเรื่องยากสำหรับบุคคลต่อไปที่จะถอดรหัสข้อความซึ่งจะปรากฏเป็นพูดไม่ชัด แต่บุคคลที่มีรหัสสามารถถอดรหัสและอ่านได้อย่างง่ายดาย.
การเข้ารหัสแบบง่ายอื่น ๆ เช่นสี่เหลี่ยมจตุรัส Polybius ใช้การเข้ารหัสแบบตัวเลขที่ระบุรายการจดหมายแต่ละฉบับพร้อมตำแหน่งตัวเลขที่สอดคล้องกันทั้งด้านบนและด้านข้างเพื่อบอกตำแหน่งของจดหมาย.
การใช้ตารางแบบเดียวกับด้านบนคุณจะเขียนตัวอักษร“ G” เป็น“ 23” หรือ“ GEEK” เป็น“ 23 31 31 43”.
เครื่องปริศนา
ในช่วงสงครามโลกครั้งที่สองชาวเยอรมันใช้เครื่อง Enigma เพื่อส่งสัญญาณเข้ารหัสไปมาซึ่งใช้เวลาหลายปีก่อนที่โปแลนด์จะสามารถถอดรหัสข้อความและให้การแก้ปัญหากับกองกำลังพันธมิตรซึ่งเป็นเครื่องมือในชัยชนะของพวกเขา.
ประวัติความเป็นมาของการเข้ารหัสสมัยใหม่
ให้หน้ามัน: เทคนิคการเข้ารหัสที่ทันสมัยอาจเป็นเรื่องที่น่าเบื่ออย่างยิ่งดังนั้นแทนที่จะอธิบายให้พวกเขาด้วยคำพูดเราได้รวบรวมการ์ตูนแนวที่พูดเกี่ยวกับประวัติศาสตร์ของการเข้ารหัสโดยได้รับแรงบันดาลใจจากคู่มือรูปไม้ของ Jeff Moser กับ AES. หมายเหตุ: ชัดเจนว่าเราไม่สามารถถ่ายทอดทุกอย่างเกี่ยวกับประวัติของการเข้ารหัสในการ์ตูนสตริป.
ย้อนกลับไปในสมัยนั้นผู้คนไม่มีวิธีการเข้ารหัสที่ดีเพื่อความปลอดภัยในการสื่อสารทางอิเล็กทรอนิกส์.
ลูซิเฟอร์เป็นชื่อที่ได้รับจาก ciphers บล็อกพลเรือนที่เก่าแก่ที่สุดพัฒนาโดย Horst Feistel และเพื่อนร่วมงานของเขาที่ IBM.
มาตรฐานการเข้ารหัสข้อมูล (DES) เป็นรหัสลับ (รูปแบบของการเข้ารหัสลับที่ใช้ร่วมกัน) ซึ่งได้รับเลือกจากสำนักงานมาตรฐานแห่งชาติให้เป็นมาตรฐานการประมวลผลข้อมูลกลางอย่างเป็นทางการของสหรัฐอเมริกา (FIPS) สำหรับประเทศสหรัฐอเมริกาในปี 1976 ใช้ในระดับสากล.
ข้อกังวลเกี่ยวกับความปลอดภัยและการทำงานที่ค่อนข้างช้าของ DES ในซอฟต์แวร์กระตุ้นให้นักวิจัยเสนอการออกแบบตัวเลขบล็อกทางเลือกที่หลากหลายซึ่งเริ่มปรากฏในช่วงปลายทศวรรษ 1980 และต้น 1990: ตัวอย่าง ได้แก่ RC5, Blowfish, IDEA, NewDES, ปลอดภัย, CAST5 และ FEAL
อัลกอริทึมการเข้ารหัสลับ Rijndael ถูกนำมาใช้โดยรัฐบาลสหรัฐอเมริกาในฐานะการเข้ารหัสลับแบบ symmetric-key มาตรฐานหรือ Advanced Encryption Standard (AES) AES ได้รับการประกาศโดยสถาบันมาตรฐานและเทคโนโลยีแห่งชาติ (NIST) ในฐานะสหรัฐอเมริกา FIPS PUB 197 (FIPS 197) เมื่อวันที่ 26 พฤศจิกายน 2544 หลังจากกระบวนการกำหนดมาตรฐาน 5 ปีซึ่งการออกแบบการแข่งขันสิบห้ารายการได้รับการประเมินและประเมินก่อนที่ Rijndael อัลกอริทึมการเข้ารหัสที่เหมาะสม.
ประสิทธิภาพอัลกอริทึมการเข้ารหัส
มีอัลกอริธึมการเข้ารหัสมากมายและเหมาะสำหรับวัตถุประสงค์ที่แตกต่างกัน - คุณสมบัติหลักสองประการที่ระบุและแยกความแตกต่างของอัลกอริธึมการเข้ารหัสหนึ่งจากความสามารถในการรักษาความปลอดภัยข้อมูลที่ได้รับการป้องกันจากการโจมตีและความเร็วและประสิทธิภาพ.
เป็นตัวอย่างที่ดีของความแตกต่างความเร็วระหว่างการเข้ารหัสชนิดต่าง ๆ คุณสามารถใช้ยูทิลิตี้การเปรียบเทียบที่สร้างไว้ในตัวช่วยสร้างการสร้างไดรฟ์ข้อมูลของทรูคริปต์อย่างที่คุณเห็น AES คือการเข้ารหัสที่แข็งแกร่งที่สุด.
มีทั้งวิธีการเข้ารหัสที่ช้าลงและเร็วขึ้นและเหมาะสำหรับวัตถุประสงค์ที่แตกต่างกัน หากคุณเพียงแค่พยายามถอดรหัสข้อมูลเล็ก ๆ น้อย ๆ ทุก ๆ ครั้งคุณสามารถที่จะใช้การเข้ารหัสที่แข็งแกร่งที่สุดหรือแม้แต่เข้ารหัสสองครั้งด้วยการเข้ารหัสประเภทต่าง ๆ หากคุณต้องการความเร็วคุณอาจต้องการใช้ AES.
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเปรียบเทียบการเข้ารหัสประเภทต่าง ๆ ให้ตรวจสอบรายงานจากมหาวิทยาลัยวอชิงตันแห่งเซนต์หลุยส์ที่ซึ่งพวกเขาทำการทดสอบตามกิจวัตรที่แตกต่างกันมากมาย.
ประเภทของการเข้ารหัสที่ทันสมัย
อัลกอริทึมการเข้ารหัสแฟนซีทั้งหมดที่เราได้พูดถึงก่อนหน้านี้ส่วนใหญ่จะใช้สำหรับการเข้ารหัสสองประเภท:
- อัลกอริทึมของคีย์สมมาตร ใช้คีย์เข้ารหัสที่เกี่ยวข้องหรือเหมือนกันสำหรับทั้งการเข้ารหัสและการถอดรหัส.
- อัลกอริทึมที่สำคัญไม่สมมาตร ใช้คีย์ที่แตกต่างกันสำหรับการเข้ารหัสและการถอดรหัสซึ่งมักจะเรียกว่าการเข้ารหัสคีย์สาธารณะ.
การเข้ารหัสคีย์แบบสมมาตร
เพื่ออธิบายแนวคิดนี้เราจะใช้คำอุปมาบริการไปรษณีย์ที่อธิบายไว้ใน Wikipedia เพื่อทำความเข้าใจว่าการทำงานของอัลกอริทึมคีย์สมมาตรนั้นเป็นอย่างไร.
อลิซใส่ข้อความลับของเธอไว้ในกล่องและล็อคกล่องโดยใช้กุญแจที่เธอมีกุญแจ จากนั้นเธอก็ส่งกล่องให้บ๊อบทางไปรษณีย์ธรรมดา เมื่อบ๊อบได้รับกล่องเขาใช้สำเนาของคีย์ของอลิซที่เหมือนกัน (ซึ่งเขาได้รับมาก่อนหน้านี้อาจจะโดยการประชุมแบบตัวต่อตัว) เพื่อเปิดกล่องและอ่านข้อความ บ๊อบสามารถใช้กุญแจเดียวกันเพื่อส่งคำตอบลับของเขา.
อัลกอริธึม - กุญแจสมมาตรสามารถแบ่งออกเป็นสตรีม ciphers และบล็อก ciphers- สตรีมเข้ารหัสบิตของข้อความหนึ่งครั้งและบล็อกยันต์ใช้จำนวนบิตมักในบล็อก 64 บิตในเวลาและเข้ารหัสพวกเขาเป็น หน่วยเดียว มีอัลกอริทึมที่แตกต่างกันมากมายที่คุณสามารถเลือกได้จากอัลกอริธึมที่ได้รับความนิยมและได้รับความนิยม ได้แก่ Twofish, Serpent, AES (Rijndael), Blowfish, CAST5, RC4, TDES และ IDEA.
การเข้ารหัสแบบอสมมาตร
ในระบบกุญแจแบบไม่สมมาตรบ๊อบและอลิซมีกุญแจคล้องแยกต่างหากแทนที่จะเป็นกุญแจเดียวที่มีหลายปุ่มจากตัวอย่างสมมาตร. หมายเหตุ: แน่นอนว่านี่เป็นตัวอย่างที่มีขนาดใหญ่เกินไปอย่างมากของวิธีการใช้งานจริงซึ่งซับซ้อนกว่ามาก แต่คุณจะได้รับแนวคิดทั่วไป.
อย่างแรกอลิซขอให้บ็อบส่งกุญแจเปิดให้กับเธอทางไปรษณีย์ธรรมดาโดยรักษากุญแจของเขาไว้กับตัวเอง เมื่ออลิซได้รับมันเธอใช้มันเพื่อล็อคกล่องที่บรรจุข้อความของเธอและส่งกล่องล็อคไปยังบ็อบ บ็อบสามารถปลดล็อคกล่องด้วยกุญแจของเขาและอ่านข้อความจากอลิซ ในการตอบกลับบ๊อบต้องเอากุญแจเปิดของอลิซเพื่อล็อคกล่องก่อนส่งกลับไปหาเธอ.
ข้อได้เปรียบที่สำคัญในระบบกุญแจแบบอสมมาตรคือบ๊อบและอลิซไม่จำเป็นต้องส่งสำเนาของกุญแจให้กัน วิธีนี้จะช่วยป้องกันบุคคลที่สาม (ตัวอย่างเช่นพนักงานไปรษณีย์ที่เสียหาย) จากการคัดลอกคีย์ขณะที่อยู่ในระหว่างการขนส่งทำให้บุคคลที่สามกล่าวว่าสามารถสอดแนมข้อความที่ส่งในอนาคตทั้งหมดระหว่างอลิซและบ็อบ นอกจากนี้หากบ๊อบประมาทและอนุญาตให้ผู้อื่นคัดลอกได้ ของเขา คีย์ข้อความของอลิซที่มีต่อบ็อบจะถูกประนีประนอม แต่ข้อความของอลิซต่อคนอื่นจะยังคงเป็นความลับเนื่องจากคนอื่นจะให้กุญแจสำหรับใช้งานต่าง ๆ.
การเข้ารหัสแบบอสมมาตรใช้คีย์ที่แตกต่างกันสำหรับการเข้ารหัสและถอดรหัส ผู้รับข้อความสร้างรหัสส่วนตัวและกุญแจสาธารณะ พับลิกคีย์ถูกกระจายระหว่างผู้ส่งข้อความและพวกเขาใช้พับลิกคีย์เพื่อเข้ารหัสข้อความ ผู้รับใช้ไพรเวตคีย์ข้อความใด ๆ ที่เข้ารหัสซึ่งถูกเข้ารหัสโดยใช้กุญแจสาธารณะของผู้รับ.
มีประโยชน์อย่างหนึ่งที่สำคัญในการทำการเข้ารหัสด้วยวิธีนี้เมื่อเปรียบเทียบกับการเข้ารหัสแบบสมมาตร เราไม่จำเป็นต้องส่งข้อมูลลับใด ๆ (เช่นคีย์เข้ารหัสหรือรหัสผ่าน) ผ่านช่องทางที่ไม่ปลอดภัย กุญแจสาธารณะของคุณออกไปสู่โลก - มันไม่เป็นความลับและไม่จำเป็นต้องเป็น รหัสส่วนตัวของคุณสามารถอยู่สบายและสบายบนคอมพิวเตอร์ส่วนบุคคลของคุณที่คุณสร้างมัน - มันไม่จำเป็นต้องส่งอีเมลได้ทุกที่หรืออ่านโดยผู้โจมตี.
วิธีการเข้ารหัสการสื่อสารที่ปลอดภัยบนเว็บ
เป็นเวลาหลายปีที่โปรโตคอล SSL (Secure Sockets Layer) ได้รับการรักษาความปลอดภัยการทำธุรกรรมทางเว็บโดยใช้การเข้ารหัสระหว่างเว็บเบราว์เซอร์ของคุณและเว็บเซิร์ฟเวอร์ปกป้องคุณจากใครก็ตามที่อาจกำลังสอดแนมบนเครือข่ายตรงกลาง.
SSL นั้นค่อนข้างง่ายในแนวความคิด มันเริ่มต้นเมื่อเบราว์เซอร์ร้องขอหน้าที่ปลอดภัย (โดยปกติคือ https: //)
เว็บเซิร์ฟเวอร์ส่งรหัสสาธารณะพร้อมใบรับรอง.
เบราว์เซอร์ตรวจสอบว่าใบรับรองออกโดยบุคคลที่เชื่อถือได้ (ปกติคือรูท CA ที่เชื่อถือได้) ว่าใบรับรองนั้นยังคงใช้ได้และใบรับรองนั้นเกี่ยวข้องกับเว็บไซต์ที่ได้รับการติดต่อ.
จากนั้นเบราว์เซอร์จะใช้กุญแจสาธารณะเพื่อเข้ารหัสคีย์การเข้ารหัสแบบสมมาตรแบบสุ่มและส่งไปยังเซิร์ฟเวอร์ด้วย URL ที่เข้ารหัสที่จำเป็นรวมถึงข้อมูล http อื่น ๆ ที่เข้ารหัส.
เว็บเซิร์ฟเวอร์ถอดรหัสคีย์การเข้ารหัสแบบสมมาตรโดยใช้ไพรเวตคีย์และใช้คีย์สมมาตรของเบราว์เซอร์เพื่อถอดรหัส URL และข้อมูล http.
เว็บเซิร์ฟเวอร์จะส่งคืนเอกสาร html ที่ร้องขอและข้อมูล http ที่เข้ารหัสด้วยคีย์สมมาตรของเบราว์เซอร์ เบราว์เซอร์ถอดรหัสข้อมูล http และเอกสาร html โดยใช้คีย์สมมาตรและแสดงข้อมูล.
และตอนนี้คุณสามารถซื้อสินค้าอีเบย์ที่คุณไม่ต้องการได้อย่างปลอดภัย.
คุณเรียนรู้อะไรหรือเปล่า?
ถ้าคุณทำมาไกลขนาดนี้เราจะสิ้นสุดการเดินทางอันยาวนานของเราในการทำความเข้าใจการเข้ารหัสและวิธีการทำงานเล็ก ๆ น้อย ๆ เริ่มต้นจากการเข้ารหัสในยุคแรก ๆ กับชาวกรีกและโรมันการเพิ่มขึ้นของลูซิเฟอร์และในที่สุด SSL ใช้การเข้ารหัสแบบอสมมาตรและสมมาตรเพื่อช่วยคุณซื้อกระต่ายสีชมพูที่นุ่มบนอีเบย์.
เราเป็นแฟนตัวยงของการเข้ารหัสที่นี่ที่ How-To Geek และเราได้กล่าวถึงวิธีการมากมายในการทำสิ่งต่าง ๆ เช่น:
- เริ่มต้นใช้งาน TrueCrypt (เพื่อรักษาความปลอดภัยข้อมูลของคุณ)
- เพิ่มการเข้ารหัสเว็บไซต์อัตโนมัติไปยัง Firefox
- BitLocker To Go เข้ารหัสแฟลชไดรฟ์พกพาใน Windows 7
- วิธีการรักษาความปลอดภัยคอมพิวเตอร์ Linux ของคุณโดยการเข้ารหัสฮาร์ดไดรฟ์ของคุณ
- เพิ่มตัวเลือกการเข้ารหัส / ถอดรหัสในเมนูคลิกขวาของ Windows 7 / Vista
- เริ่มต้นใช้งานการเข้ารหัสไดรฟ์ TrueCrypt บน Mac OS X
แน่นอนว่าการเข้ารหัสนั้นซับซ้อนเกินกว่าที่จะอธิบายทุกอย่างได้ เราคิดถึงบางสิ่งที่สำคัญหรือไม่? รู้สึกอิสระที่จะวางความรู้เกี่ยวกับผู้อ่านเพื่อนของคุณในความคิดเห็น.