การเข้ารหัส: อธิบายอัลกอริทึมคีย์สมมาตรและไม่สมมาตร

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

การเข้ารหัสแบบสมมาตรหรือการเข้ารหัสแบบคีย์เดียว

การเข้ารหัสแบบสมมาตรเป็นเทคนิคการเข้ารหัสที่เก่าแก่ที่สุด แต่ก็ยังคงให้ความปลอดภัยในระดับสูง ขึ้นอยู่กับการใช้คีย์ลับเดียวซึ่งจะทำหน้าที่ในการเข้ารหัสและถอดรหัสข้อมูลไม่ว่าจะเป็นข้อมูลระหว่างการขนส่งด้วยโปรโตคอลเช่น TLS หรือข้อมูลบนอุปกรณ์จัดเก็บข้อมูลแบบถอดได้ การเข้ารหัสแบบสมมาตรเป็นวิธีแรกที่ใช้ในการเข้ารหัสข้อมูลโดยขึ้นอยู่กับข้อเท็จจริงที่ว่าจะใช้รหัสผ่านเดียวกันสำหรับทั้งการเข้ารหัสและการถอดรหัสดังนั้นจึงจำเป็นอย่างยิ่งที่ผู้ใช้ทุกคนที่ต้องการเข้ารหัสหรือถอดรหัสข้อความมีสิ่งนี้ รหัสลับมิฉะนั้นจะไม่สามารถทำได้ ด้วยการเข้ารหัสแบบสมมาตรทำให้เราสื่อสารหรือจัดเก็บไฟล์ได้อย่างปลอดภัย

การอ่านรห​​ัส

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

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

มีหลายจุดที่อัลกอริทึมคีย์สมมาตรต้องเป็นไปตามเพื่อให้ใช้งานได้อย่างปลอดภัย:

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

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

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

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

ข้อดีของอัลกอริธึมการเข้ารหัสแบบสมมาตรคือรวดเร็วรวดเร็วมากนอกจากนี้ในช่วงไม่กี่ปีที่ผ่านมาการเร่งความเร็วในการเข้ารหัสฮาร์ดแวร์ได้รวมเข้ากับโปรเซสเซอร์คอมพิวเตอร์เซิร์ฟเวอร์เราเตอร์และอุปกรณ์อื่น ๆ ด้วยวิธีนี้เราจึงสามารถถ่ายโอนข้อมูลผ่าน VPN เร็วจริงๆ. ความเร็วยังขึ้นอยู่กับอัลกอริธึมการเข้ารหัสแบบสมมาตรที่จะใช้เช่น AES และ ChaCha20 เป็นสองสิ่งที่เร็วและปลอดภัยที่สุดที่เรามีในปัจจุบัน แต่ฮาร์ดแวร์ของอุปกรณ์มีอิทธิพลอย่างมาก

ตอนนี้เราจะพูดถึงรายละเอียดเกี่ยวกับอัลกอริทึมสมมาตรสองแบบที่ใช้อย่างต่อเนื่องในปัจจุบันทั้งในการเชื่อมต่อ HTTPS กับ TLS 1.2 และ TLS 1.3 ในเครือข่ายส่วนตัวเสมือนที่มี IPsec, OpenVPN หรือ WireGuardและในพื้นที่อื่น ๆ ที่ใช้การเข้ารหัสข้อมูลเช่นเดียวกับเวราคริปต์

AES (มาตรฐานการเข้ารหัสขั้นสูง)

อัลกอริทึม AES แบบสมมาตรเป็นผู้รับผิดชอบ แทนที่ DES และปัจจุบันใช้ในช่องทางและโปรโตคอลที่ปลอดภัยทั้งหมดเช่น TLS, FTPES, เครือข่ายส่วนตัวเสมือนและอื่น ๆ อีกมากมาย การเข้ารหัส AES สามารถใช้ได้ทั้งในซอฟต์แวร์และฮาร์ดแวร์ AES เป็นอัลกอริธึมการเข้ารหัสบล็อก ขนาดบล็อกคงที่คือ 128 บิต . สามารถเลือกความยาวของคีย์ได้และเรามี มี 128, 192 และ 256 บิต โดยมีความยาว 128 บิตเป็นมาตรฐาน แต่ 256 บิตก็ใช้กันอย่างแพร่หลายเช่นกัน

สิ่งที่สำคัญมากคือ AES มีหน้าที่ในการสร้างเมทริกซ์ 4 × 4 จากนั้นจะใช้ชุดของรอบการเข้ารหัส สำหรับการเข้ารหัสคีย์ 128 บิต 10 รอบจะใช้สำหรับคีย์ 192 บิต 12 รอบและสำหรับคีย์ 256 บิตรอบที่ใช้คือ 14 ตั้งแต่เริ่มต้นนักเข้ารหัสหลายคนสงสัยในความปลอดภัยและเป็น ว่าการโจมตีได้รับการบันทึกไว้หลายรอบใกล้เคียงกับรอบสุดท้ายโดยเฉพาะ 7 รอบสำหรับคีย์ 128 บิต 8 รอบสำหรับคีย์ 192 บิตและ 9 รอบสำหรับคีย์ 256 บิตได้รับการถอดรหัส

โหมดการเข้ารหัสเป็นวิธีจัดการบล็อกข้อความที่เข้ารหัส AES มีหลายประเภทและแต่ละประเภทจะทำงานในลักษณะที่แตกต่างกัน ตัวอย่างเช่นมี AES-CBC, AES-CFB และ AES-OFB เราจะอธิบายว่านี่คืออะไรที่ปรากฏในไลบรารีการเข้ารหัสเช่น OpenSSL และ LibreSSL

  • CBC (Cipher-block Chaining) - โหมดการเข้ารหัสนี้ถูกใช้กันอย่างแพร่หลายร่วมกับฟังก์ชันแฮชเพื่อตรวจสอบความถูกต้องของข้อมูลและยังคงใช้อยู่ในปัจจุบัน โหมดการเข้ารหัสนี้ประกอบด้วย XORing แต่ละบล็อกของข้อความธรรมดากับบล็อกการเข้ารหัสก่อนหน้า แต่ละบล็อกที่เข้ารหัสจะขึ้นอยู่กับการประมวลผลก่อนหน้าจนถึงจุดนั้น ในการดำเนินการอ็อพชัน XOR นี้กับข้อความบล็อกแรกจะใช้ initialization vector IV โหมดการเข้ารหัสนี้ดำเนินการตามลำดับไม่สามารถปฏิบัติควบคู่กันเพื่อเพิ่มประสิทธิภาพในการเข้ารหัส / ถอดรหัสข้อมูล
  • OFB (ข้อเสนอแนะเอาต์พุต) : ในโหมดนี้จะใช้คีย์ลับเพื่อสร้างบล็อกสุ่มหลอกที่ใช้การดำเนินการ XOR กับข้อความธรรมดาเพื่อสร้างไซเฟอร์เท็กซ์ ในกรณีนี้จำเป็นต้องใช้เวกเตอร์การเริ่มต้นด้วยซึ่งจะต้องไม่ซ้ำกันสำหรับแต่ละข้อความที่เข้ารหัส หากไม่ได้ใช้ IV อื่นความปลอดภัยของระบบจะถูกบุกรุก นอกจากนี้ยังไม่สามารถแยกชิ้นส่วนได้
  • CFB (ข้อเสนอแนะเกี่ยวกับการเข้ารหัส) : ทำเช่นเดียวกับใน OFB แต่ในการสร้างคีย์สตรีมจะเข้ารหัสบล็อกสุดท้ายของการเข้ารหัสแทนที่จะเป็นบล็อกสุดท้ายของคีย์สตรีมเหมือนที่ OFB ทำ การเข้ารหัสไม่สามารถขนานกันได้อย่างไรก็ตามการถอดรหัสสามารถทำได้
  • จีซีเอ็ม ( โหมด Galois / Counter) : โหมดการเข้ารหัสนี้เป็นโหมดที่ดีที่สุดในด้านความปลอดภัยและความเร็ว GCM ช่วยให้การประมวลผลแบบขนานและเข้ากันได้กับโปรเซสเซอร์ AES-NI เพื่อเร่งประสิทธิภาพการเข้ารหัส / ถอดรหัสข้อมูล โหมดการเข้ารหัสนี้คือ AEAD นอกเหนือจากการเข้ารหัสข้อมูลแล้วยังสามารถตรวจสอบสิทธิ์และตรวจสอบความสมบูรณ์ของข้อมูลเพื่อให้แน่ใจว่าไม่มีการแก้ไข GCM ยังสามารถยอมรับเวกเตอร์การเริ่มต้นแบบสุ่ม

อย่างที่คุณเห็นปัจจุบัน AES เป็นหนึ่งในอัลกอริธึมการเข้ารหัสแบบสมมาตรที่สำคัญและใช้กันอย่างแพร่หลายในโลกอย่างไรก็ตามโหมดการเข้ารหัสที่แนะนำมากที่สุดคือ AES-GCM เนื่องจากประกอบด้วย AEAD

ชะชะช่า 20

อัลกอริทึม ChaCha20 เป็นอัลกอริธึมการเข้ารหัสแบบสมมาตรที่ รองรับ 128 บิตและ 256 บิต และคีย์ความเร็วสูงซึ่งแตกต่างจาก AES ซึ่งเป็นรหัสบล็อก ChaCha20 เป็นรหัสแบบสตรีม มีลักษณะคล้ายกับ Salsa20 รุ่นก่อน แต่มีฟังก์ชันดั้งเดิม 12 หรือ 20 รอบที่แตกต่างกัน รหัสได้รับการเผยแพร่ซึ่งเป็นมาตรฐานโดย IETF ใน RFC 7539 และในการใช้งานซอฟต์แวร์มีประสิทธิภาพและเร็วกว่า AES มากดังนั้นจึงกลายเป็นสถานที่ภายในอัลกอริทึมที่ใช้กันมากที่สุดในปัจจุบันอย่างรวดเร็ว

หากต้องการทราบว่าเหตุใดจึงมีชื่อเสียงมากเราจะวาง Google ไว้ตรงกลางเพื่อให้เข้าใจทุกอย่างได้เร็วขึ้นมาก การเชื่อมต่อ HTPPS มุ่งเน้นไปที่การนำเสนอความปลอดภัยสูงสุดบนเว็บไซต์ที่เราเยี่ยมชมทุกวันซึ่งเป็นขั้นตอนต่อไปของโปรโตคอล HTTP ซึ่งไม่มีการป้องกันใด ๆ อย่างไรก็ตามการเข้ารหัสจะแตกต่างกันไปในแต่ละเบราว์เซอร์ จนกระทั่งไม่กี่ปีที่ผ่านมา Chrome for Android ได้ใช้ AES-GCM เป็นอัลกอริธึมการเข้ารหัสแบบสมมาตรอย่างไรก็ตาม Google ได้ดำเนินการเกี่ยวกับการเข้ารหัสที่ทันสมัยปลอดภัยและเร็วขึ้นเป็นเวลาหลายปี

ความนิยมเพิ่มขึ้นอย่างรวดเร็วเกิดขึ้นเมื่อหลังจากเปิดตัว Chrome เวอร์ชันเดสก์ท็อปเวอร์ชันใหม่ ChaCha20 สำหรับการเข้ารหัสและ Poly1305 สำหรับการตรวจสอบความถูกต้องมาถึงบน Android งานไททานิกที่แปลเป็นอัลกอริธึมสมมาตรที่ให้ความปลอดภัยมากขึ้นและมีภูมิคุ้มกันต่อการโจมตีประเภทต่างๆ อย่างไรก็ตามสิ่งที่น่าทึ่งที่สุดคือมีประสิทธิภาพสูงกว่าโปรโตคอลที่เก่ากว่าเช่น AES ถึงสามเท่าด้วยวิธีนี้ความสามารถของ ซีพียู นอกจากนี้ยังใช้งานได้ดีขึ้นและความกว้างของแถบที่ใช้ลดลง 16% ซึ่งทำให้สามารถใช้ประโยชน์จากการเชื่อมต่อได้มากยิ่งขึ้น

ChaCha20 ใช้กันอย่างแพร่หลายในการเชื่อมต่อ HTTPS ในการเชื่อมต่อ SSH เพื่อจัดการเซิร์ฟเวอร์และแม้แต่โปรโตคอล WireGuard VPN ที่เป็นที่นิยมก็ใช้เฉพาะ ChaCha20 สำหรับการเข้ารหัสข้อมูลแบบสมมาตร เป็นไปได้มากว่าเร็ว ๆ นี้เราจะได้เห็น ChaCha20 ในการเชื่อมต่อ IPsec ในระหว่างนี้คุณควรใช้ AES-GCM ทุกครั้งที่ทำได้

จนถึงตอนนี้คำอธิบายของการเข้ารหัสแบบสมมาตรเราได้แสดงความคิดเห็นเกี่ยวกับอัลกอริทึมทั้งสองที่ใช้บ่อยในปัจจุบันมีอีกมากมายที่ในอดีตมีความเกี่ยวข้องกันมากโดยเฉพาะอย่างยิ่งสำหรับการพัฒนาของปัจจุบันเนื่องจากฐานของอัลกอริทึมใหม่คือพวกเขา ตัดสินจากประสบการณ์เก่าความผิดพลาดและข้อดีของพวกเขา อัลกอริทึมเช่น DES, 3DES, RC5 หรือ IDEA ได้ปูทางไปสู่อัลกอริทึมใหม่ดังนั้นวันนี้เรามีอัลกอริทึมการเข้ารหัสที่แข็งแกร่งมากพร้อมความสามารถในการต้านทานการโจมตีและปกป้องข้อมูลทั้งหมดของเราจากมือที่ไม่ต้องการและประสงค์ร้าย

การเข้ารหัสแบบไม่สมมาตรหรือการเข้ารหัสคีย์สาธารณะ

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

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

คู่ของคีย์มีฟังก์ชั่นที่สำคัญและหลากหลายซึ่งเราเน้น:

  • เข้ารหัสข้อมูล
  • ตรวจสอบความสมบูรณ์ของข้อมูลที่ส่ง
  • รับประกันความแท้ของผู้ออก.

การเข้ารหัสคีย์แบบไม่สมมาตร

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

โครงสร้างทางคณิตศาสตร์ของการเข้ารหัสแบบอสมมาตรทำงานอย่างไร:

  • ข้อความ + คีย์สาธารณะ = ข้อความที่เข้ารหัส
  • ข้อความที่เข้ารหัส + คีย์ส่วนตัว = ข้อความที่ถอดรหัส
  • ข้อความ + คีย์ส่วนตัว = ข้อความที่มีลายเซ็น
  • ข้อความที่ลงนาม + คีย์สาธารณะ = การรับรองความถูกต้อง

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

  • หากทราบรหัสลับก็จะ ต้องยากมากหรือแทบจะเป็นไปไม่ได้เลยที่จะแยกข้อความธรรมดาและคีย์ส่วนตัว โดยวิธีใดก็ได้
  • หากทราบข้อความธรรมดาและการเข้ารหัสจะเป็นเช่นนั้น ควรจะมีราคาแพงกว่าในการรับคีย์ส่วนตัวมากกว่าข้อความธรรมดา .
  • หากข้อมูลถูกเข้ารหัสด้วยคีย์สาธารณะ ควรมีเฉพาะคีย์ส่วนตัวที่สามารถถอดรหัสได้ , และในทางกลับกัน.

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

การทำงานของระบบสมมาตรและไม่สมมาตร

ข้อเสียเปรียบหลักของ การเข้ารหัสประเภทนี้ คือความช้า การใช้คีย์ประเภทนี้จะทำให้กระบวนการเข้ารหัสในการสื่อสารช้าลง วิธีแก้ปัญหานี้คือใช้ทั้งการเข้ารหัสแบบไม่สมมาตรและแบบสมมาตร (เช่นโปรโตคอลเช่น IPSec หรือ OpenVPN สำหรับเครือข่ายส่วนตัวเสมือน HTTPS สำหรับการเชื่อมต่อเว็บที่ปลอดภัยหรือในการเชื่อมต่อ SFTP / FTPES)

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

ตัวอย่างที่ชัดเจนของการใช้วิธีการรวมประเภทนี้คือ VPN เช่น OpenVPN หรือ IPsec ซึ่งจะมีการสร้างรหัสเซสชันที่ผู้ใช้รู้จักกันใหม่ทุกครั้งเพื่อเพิ่มความปลอดภัยในการสื่อสารโดยไม่ส่งผลให้เกิดความล่าช้าในการถ่ายโอนข้อมูล .

การตอบสนองต่อความท้าทาย

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

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

ลายเซ็นดิจิทัล

ลายเซ็นดิจิทัล อนุญาตให้ผู้รับข้อความแจ้งว่าต้นกำเนิดเป็นของจริง นอกจากนี้เรายังตรวจสอบได้ว่ามีการแก้ไขข้อความหรือไม่ การปลอมลายเซ็นดิจิทัลแทบจะเป็นไปไม่ได้เว้นแต่พวกเขาจะรู้คีย์ส่วนตัวของบุคคลที่ลงชื่อ (และเราได้บอกไปแล้วก่อนหน้านี้ว่าต้องบันทึกคีย์ส่วนตัวและไม่มีใครรู้) นี่คือสองขั้นตอนสำหรับการใช้ลายเซ็นดิจิทัล:

  • กระบวนการลายเซ็น: ผู้ส่งเข้ารหัสข้อมูลด้วยคีย์ส่วนตัวและส่งไปยังผู้รับ
  • ตรวจสอบลายเซ็น: ผู้รับจะถอดรหัสข้อมูลโดยใช้คีย์สาธารณะของผู้ส่งและตรวจสอบว่าข้อมูลตรงกับข้อมูลต้นฉบับ (หากตรงกันแสดงว่าไม่ได้รับการแก้ไข)

ในลายเซ็นดิจิทัลฟังก์ชันแฮชเช่น SHA2-256 และ SHA2-512 ถูกนำมาใช้เนื่องจากดังที่เราได้อธิบายไปก่อนหน้านี้การเข้ารหัสแบบไม่สมมาตรนั้นช้า ผู้ส่งการสื่อสารจะใช้ฟังก์ชัน HASH กับข้อความต้นฉบับเพื่อรับลายนิ้วมือ จากนั้นลายนิ้วมือจะถูกเข้ารหัสด้วยคีย์ส่วนตัวและส่งไปยังผู้รับผ่านช่องทางที่ไม่ปลอดภัยสำหรับการถอดรหัส ผู้รับจะแฮชข้อมูลของคุณและเปรียบเทียบผลลัพธ์ด้วย (ข้อมูลที่ได้รับและผลลัพธ์ที่ได้รับ) หากผลของการเปรียบเทียบข้อมูลเหล่านี้เป็นลบนั่นคือมีความแตกต่างระหว่างสิ่งที่ได้รับและสิ่งที่ได้รับข้อมูลถูกเปลี่ยนแปลงและข้อมูลลายนิ้วมือจะเปลี่ยนไป หากผลลัพธ์เหมือนกันการสื่อสารจะเกิดขึ้นโดยไม่มีปัญหา

ด้วยสิ่งเหล่านี้เราได้ปฏิบัติตาม:

  • ความถูกต้อง ผู้ออกคือคนที่พวกเขาบอกว่าพวกเขาเป็น . ลายเซ็นที่ต้นทางและปลายทางเหมือนกัน
  • ความซื่อสัตย์ ข้อความไม่ได้รับการแก้ไข . สิ่งที่ได้และสิ่งที่ได้รับนั้นเหมือนกัน
  • ไม่มีการปฏิเสธ ผู้ส่งไม่สามารถปฏิเสธว่าได้ส่งข้อความไปยังผู้รับ . ลายเซ็นดิจิทัลไม่เปลี่ยนแปลง

หากเราต้องการแนะนำการรักษาความลับในการสื่อสารสิ่งที่เราต้องทำคือให้ผู้ส่งเข้ารหัสข้อความต้นฉบับด้วยคีย์สาธารณะของผู้รับ

อัลกอริธึมการเข้ารหัสคีย์แบบไม่สมมาตร

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

Diffie-Hellman

ไม่ใช่อัลกอริทึมแบบอสมมาตรเอง แต่เป็นโปรโตคอลการสร้างที่สำคัญ ใช้เพื่อสร้างคีย์ส่วนตัวที่ปลายทั้งสองด้านของช่องทางการสื่อสารที่ไม่ปลอดภัย . ใช้เพื่อรับคีย์ส่วนตัวซึ่งข้อมูลจะถูกเข้ารหัสในภายหลังร่วมกับอัลกอริธึมการเข้ารหัสแบบสมมาตร จุดเด่นของ Diffie-Hellman คือการรักษาความปลอดภัยอยู่ที่ความยากลำบากในการคำนวณลอการิทึมแบบไม่ต่อเนื่องของตัวเลขจำนวนมาก (Diffie-Hellmann ยังอนุญาตให้ใช้เส้นโค้งรูปไข่)

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

อาร์เอส

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

ความได้เปรียบ:

  • ปัญหาของการกระจายคีย์สมมาตร (การเข้ารหัสแบบสมมาตร) ได้รับการแก้ไขแล้ว
  • สามารถใช้เพื่อใช้ในลายเซ็นดิจิทัล

ข้อเสีย:

  • ความปลอดภัยขึ้นอยู่กับประสิทธิภาพของคอมพิวเตอร์
  • ช้ากว่าอัลกอริทึมคีย์สมมาตร
  • คีย์ส่วนตัวต้องเข้ารหัสโดยอัลกอริทึมสมมาตรบางอย่าง

DSA

อัลกอริทึมนี้ยังไม่สมมาตรอย่างแท้จริงข้อเสียของ DSA คือต้องการเวลาในการประมวลผลมากกว่า RSA สำหรับความเท่าเทียมกันของฮาร์ดแวร์ DSA ใช้กันอย่างแพร่หลายในฐานะอัลกอริทึมลายเซ็นดิจิทัลปัจจุบันเป็นมาตรฐาน แต่ DSA ไม่ได้ใช้ในการเข้ารหัสข้อมูลเพียง แต่เป็นลายเซ็นดิจิทัลเท่านั้น อัลกอริทึมนี้ใช้กันอย่างแพร่หลายในการเชื่อมต่อ SSH เพื่อตรวจสอบลายเซ็นดิจิทัลของไคลเอ็นต์นอกจากนี้ยังมี DSA ที่แตกต่างกันตามเส้นโค้งวงรี (ECDSA) และมีอยู่ในไลบรารีการเข้ารหัสปัจจุบันทั้งหมดเช่น OpenSSL, GnuTLS หรือ LibreSSL คุณสมบัติอีกอย่างของ DSA คือความยาวคีย์ความยาวคีย์ต่ำสุดคือ 512 บิตแม้ว่าโดยทั่วไปจะใช้ 1024 บิต

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