หน้าแรก Proton

ChaCha20 คืออะไร

ChaCha20 ช่วยปกป้องข้อมูลเมื่อส่งข้อความ จัดเก็บไฟล์ หรือท่องเว็บแบบส่วนตัวโดยใช้แอปหรือบริการ

เป็นอัลกอริทึมการเข้ารหัสลับสมัยใหม่ที่ออกแบบมาเพื่อรักษาความลับของข้อมูล ในขณะที่ยังคงความรวดเร็วและมีประสิทธิภาพในอุปกรณ์ที่หลากหลาย

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

ChaCha20 คืออะไร

ChaCha20 คือรหัสคีย์สมมาตรแบบ 256 บิต ที่มีความเร็วสูง น้ำหนักเบา และมีความปลอดภัยสูง ที่ใช้ในการเข้ารหัสและถอดรหัสข้อมูล ได้รับการออกแบบโดย Daniel J. Bernstein เพื่อปรับปรุงรหัสรุ่นก่อนหน้าที่มีชื่อว่า Salsa20 เป้าหมายคือการสร้างสรรค์สิ่งที่มีทั้งประสิทธิภาพและความปลอดภัย โดยเฉพาะในซอฟต์แวร์

วิธีการทำงานของ ChaCha20

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

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

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

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

เหตุใด ChaCha20 จึงมีความสำคัญ

ChaCha20 แก้ปัญหาในทางปฏิบัติของความปลอดภัยสมัยใหม่: วิธีการรักษาความปลอดภัยด้วยการเข้ารหัสลับที่แข็งแกร่งซึ่งมีทั้งประสิทธิภาพและเชื่อถือได้ในอุปกรณ์หลายประเภท ทำงานได้เร็วมากในซอฟต์แวร์ เหมาะสำหรับโทรศัพท์ อุปกรณ์ขนาดเล็ก และ CPU รุ่นเก่า และทำงานตามการดำเนินการง่ายๆ ที่คอมพิวเตอร์ทำได้ดี (บวก, XOR, หมุน)

คุณสมบัติเหล่านี้ทำให้มีความน่าสนใจในระบบต่างๆ เช่น TLS, VPN(หน้าต่างใหม่), SSH และแอปส่งข้อความ ตัวอย่างเช่น โปรโตคอล VPN WireGuard®(หน้าต่างใหม่) ใช้ ChaCha20 เพื่อมอบการเข้ารหัสลับที่รวดเร็วและปลอดภัย พร้อมประสิทธิภาพการทำงานที่แข็งแกร่งแม้ในอุปกรณ์ที่ไม่มีฮาร์ดแวร์ AES โดยเฉพาะ(หน้าต่างใหม่)

ChaCha20 เทียบกับ AES

ต่อไปนี้เป็นการเปรียบเทียบระหว่าง ChaCha20 กับ AES:

ChaCha20 เทียบกับ AES

แง่มุม

ChaCha20

AES

ประเภทของรหัส

รหัสสตรีม

รหัสบล็อก

การดำเนินการพื้นฐาน

บวก/XOR/หมุน ในคำแบบ 32 บิต

การสับเปลี่ยน-การเรียงสับเปลี่ยนบนบล็อกแบบ 128 บิต

ขนาดคีย์มาตรฐาน

256 บิต

128, 192, 256 บิต

ประสิทธิภาพบน CPU ที่ไม่มีฮาร์ดแวร์พิเศษ

มักจะเร็วมาก

มักจะช้ากว่า ChaCha20

ประสิทธิภาพบน CPU ที่มีการเร่งความเร็วด้วยฮาร์ดแวร์

มักจะด้อยกว่า AES ที่มี AES-NI / ส่วนขยายคริปโตของ ARM

มักจะเร็วมากเป็นพิเศษ

โหมดตรวจสอบความถูกต้องทั่วไป

ChaCha20-Poly1305

AES-GCM

กรณีการใช้งานทั่วไป

TLS บนอุปกรณ์เคลื่อนที่/ที่ฝังไว้, คริปโตแบบซอฟต์แวร์เท่านั้น, WireGuard®

TLS, การเข้ารหัสลับดิสก์, ระบบระดับองค์กร, การเข้ารหัสลับที่รองรับด้วยฮาร์ดแวร์

เหมาะสมที่สุด

ความสามารถในการพกพา, ความเร็วของซอฟต์แวร์ที่สม่ำเสมอ, การปรับใช้ซอฟต์แวร์ที่ปลอดภัยยิ่งขึ้น

ความเร็วสูงสุดในฮาร์ดแวร์สมัยใหม่ การปฏิบัติตามข้อกำหนด/ฝ่ายสนับสนุนที่กว้างขวาง

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

หากแอปพลิเคชั่นมีทั้ง AES และ ChaCha20 โดยปกติแล้วไม่จำเป็นต้องเลือกด้วยตนเอง เนื่องจากแอปสมัยใหม่ส่วนใหญ่จะเลือกตัวเลือกที่ดีกว่าโดยอัตโนมัติโดยอิงตามอุปกรณ์และโปรเซสเซอร์ โดยทั่วไป AES จะทำงานได้ดีที่สุดบนอุปกรณ์รุ่นใหม่ที่มีฝ่ายสนับสนุน AES ในตัว ในขณะที่ ChaCha20 เป็นตัวเลือกที่แข็งแกร่งกว่าบนอุปกรณ์ที่การเข้ารหัสลับได้รับการจัดการในซอฟต์แวร์เป็นหลัก เช่น โทรศัพท์บางรุ่น ฮาร์ดแวร์พลังงานต่ำ หรือ CPU รุ่นเก่า

ChaCha20 ปลอดภัยหรือไม่

ChaCha20 ถือว่าปลอดภัยตามมาตรฐานสมัยใหม่เมื่อนำไปใช้ปรับใช้อย่างถูกต้องและใช้ร่วมกับ Nonce ที่ไม่ซ้ำกันสำหรับแต่ละการเข้ารหัสลับ

การเข้ารหัสลับที่แข็งแกร่ง

ChaCha20 ใช้การดำเนินการบวก-หมุน-XOR จำนวน 20 รอบ และถือว่าทนทานต่อการโจมตีในทางปฏิบัติที่รู้จักกันดี

ความปลอดภัยของซอฟต์แวร์ที่ดี

การออกแบบที่เรียบง่ายทำให้มีประสิทธิภาพในซอฟต์แวร์ และสามารถลดความเสี่ยงด้านช่องสัญญาณข้างเคียงบางอย่างที่พบในการปรับใช้ AES บางประเภท

ได้รับการปรับใช้อย่างแพร่หลาย

ChaCha20 ได้รับการฝ่ายสนับสนุนจากเบราว์เซอร์หลักๆ และนำมาใช้ใน HTTPS/การเชื่อมต่อ TLS สมัยใหม่, SSH และ WireGuard®

มักจับคู่กับ Poly1305

มักใช้เป็น ChaCha20-Poly1305 ซึ่งปกป้องทั้งความลับและความสมบูรณ์ของข้อความ ChaCha20-Poly1305 เป็นหนึ่งในตัวเลือกการเข้ารหัสลับแบบสมมาตรหลักที่ใช้ใน TLS 1.3

Proton VPN และ ChaCha20

ด้วย โปรโตคอล WireGuard®(หน้าต่างใหม่) ของ Proton VPN, ChaCha20-Poly1305 จะช่วยรักษาความปลอดภัยให้กับอุโมงค์ VPN เพื่อให้ทราฟฟิกอินเทอร์เน็ตยังคงความเป็นส่วนตัวโดยไม่สูญเสียความเร็ว ไม่ว่าจะท่องเว็บแบบส่วนตัว ทำการสตรีมเนื้อหา หรือใช้ WiFi สาธารณะในขณะเดินทาง

เรียนรู้เพิ่มเติมเกี่ยวกับการเข้ารหัสลับ