เครื่องมือเข้ารหัส Vigenère
รหัส Vigenère ได้รับการอธิบายครั้งแรกโดยโจวาน บัตติสตา เบลลาโซ ในปี ค.ศ. 1553 และต่อมาถูกเข้าใจผิดว่าเป็นผลงานของบลาซ เดอ วีฌเนร์ รหัสนี้เลื่อนตัวอักษรแต่ละตัวไปในปริมาณที่ต่างกันตามคำสำคัญที่วนซ้ำ แม้จะถูกเรียกว่า “le chiffre indéchiffrable” (รหัสที่ถอดไม่ได้) นานถึง 300 ปี แต่สุดท้ายก็ถูกเจาะด้วยการโจมตีเชิงสถิติของฟรีดริช คาซิสกี ในปี ค.ศ. 1863 เครื่องมือนี้ให้คุณเข้ารหัสและถอดรหัสสำหรับปริศนา โจทย์ CTF และการเรียนการสอนวิทยาการรหัสลับในห้องเรียน
วิธีใช้รหัส Vigenère
-
1
ป้อนข้อความของคุณ
ตัวอักษร A ถึง Z จะถูกเลื่อน ส่วนตัวเลข ช่องว่าง เครื่องหมายวรรคตอน และอักขระที่ไม่ใช่ละตินทั้งหมดจะผ่านไปโดยไม่เปลี่ยนแปลง
-
2
ตั้งคำสำคัญ
เลือกคำหรือวลีใดก็ได้ นับเฉพาะตัวอักษรของมัน และคำสำคัญที่ยาวกว่าจะเจาะได้ยากกว่า
-
3
เลือกเข้ารหัสหรือถอดรหัส
เครื่องมือเดียวกันจัดการได้ทั้งสองทิศทางด้วยตาราง Vigenère
-
4
อ่านผลลัพธ์
ตัวอักษรแต่ละตัวเลื่อนไปตามตัวอักษรคำสำคัญที่ตรงกัน (A=0, B=1 ฯลฯ) โดยคงตัวพิมพ์ใหญ่และเล็กไว้
ตัวอย่างที่ทำให้ดู
เครื่องมือเริ่มด้วย Hello World และคีย์ KEY เมื่อเข้ารหัสจะได้:
Text: Hello World
Key: KEYKE YKEYK
Out: Rijvs Uyvjn
สังเกตว่าตัวพิมพ์ใหญ่-เล็กถูกคงไว้ (H ยังเป็นตัวใหญ่และกลายเป็น R) ช่องว่างไม่ถูกแตะต้อง และตัวชี้คีย์เดินหน้าเฉพาะบนตัวอักษร สลับไปถอดรหัสด้วยคีย์เดิม แล้ว Rijvs Uyvjn จะกลับเป็น Hello World
ตาราง Vigenère
ตัวอักษรของข้อความแต่ละตัวและตัวอักษรของคีย์เลือกแถวและคอลัมน์ในตารางการเลื่อนแบบซีซาร์ขนาด 26x26 หากตัวอักษรข้อความคือ H และตัวอักษรคีย์คือ K ผลลัพธ์จะเป็น R เพราะ H (7) + K (10) = 17 = R ตัวอย่างคลาสสิกในตำราใช้คีย์ที่วนซ้ำ:
Text: ATTACKATDAWN
Key: LEMONLEMONLE
Out: LXFOPVEFRNHR
ทำไมจึงเหนือกว่ารหัสรุ่นก่อน
รหัสแบบตัวอักษรเดี่ยวอย่างซีซาร์และแอตแบชเข้ารหัส E ด้วยวิธีเดิมเสมอ ตัวอักษรที่พบบ่อยที่สุดในข้อความเข้ารหัสจึงเผยตัวอักษรที่พบบ่อยที่สุดในข้อความต้นฉบับ ส่วน Vigenère หมุนค่าการเลื่อน ทำให้ E เป็น X ครั้งหนึ่งและเป็น K ครั้งถัดไป จึงทำให้ความถี่ของตัวอักษรเรียบขึ้นและทำลายการวิเคราะห์อย่างง่าย
การโจมตีของคาซิสกีในหนึ่งย่อหน้า
กลุ่มตัวอักษรที่ซ้ำกันในข้อความเข้ารหัสซึ่งห่างกันเป็นระยะคงที่ บ่งชี้ว่าความยาวคีย์หารระยะนั้นลงตัว รวบรวมระยะเหล่านี้สองสามค่า หาตัวหารร่วมมากของมัน แล้วคุณจะได้ความยาวคีย์ที่น่าจะเป็น จากนั้นแบ่งข้อความเข้ารหัสเป็นสายแบบซีซาร์จำนวนเท่านั้น แล้ววิเคราะห์ความถี่ในแต่ละสาย
หมายเหตุด้านความปลอดภัย
Vigenère เป็นรหัส คลาสสิก ที่มีคุณค่าเพียงด้านการศึกษา ไม่ปลอดภัยต่อการโจมตีสมัยใหม่ใด ๆ ข้อความภาษาอังกฤษสั้น ๆ ที่ใช้คีย์หกตัวอักษรถูกเจาะได้ในไม่กี่วินาที หากต้องการความลับจริง ให้ใช้ AES-GCM หรือ ChaCha20-Poly1305 จากไลบรารีที่ผ่านการตรวจสอบ อย่าใช้รหัสที่ทำด้วยมือ
คำถามที่พบบ่อย
มีเพียง 26 ตัวอักษรละติน A-Z ที่ถูกเลื่อน ตัวอักษรไทย ตัวเลข เครื่องหมายวรรคตอน และอักขระที่ไม่ใช่ละตินอื่น ๆ จะถูกคัดลอกตามเดิม หากต้องการเข้ารหัส ให้พิมพ์ด้วยตัวอักษรละติน
รองรับ ข้อความตัวพิมพ์เล็กให้ผลลัพธ์ตัวพิมพ์เล็ก และตัวพิมพ์ใหญ่ยังคงเป็นตัวพิมพ์ใหญ่ ส่วนคำสำคัญเองไม่แยกแยะตัวพิมพ์ใหญ่-เล็ก
ได้แน่นอน เป็นของคู่ CTF สำหรับผู้เริ่มต้น คำใบ้มักบอกความยาวคีย์ไว้ในโจทย์ หรือทิ้งกลุ่มตัวอักษรที่ซ้ำกันไว้ในข้อความเข้ารหัส
ข้อความและคีย์ของคุณถูกส่งไปยังเซิร์ฟเวอร์ของเราเพื่อคำนวณรหัส โดยประมวลผลที่นั่นและไม่ถูกจัดเก็บหรือบันทึกลงบันทึก เนื่องจาก Vigenère ไม่ปลอดภัย อย่าเข้ารหัสความลับจริงด้วยรหัสคลาสสิกใด ๆ
เครื่องมือที่เกี่ยวข้อง
ตัวสร้าง HMAC
สร้างลายเซ็น HMAC (SHA-256, SHA-384, SHA-512, SHA-1 และ MD5) จากข้อความและกุญแจลับ เพื่อใช้ในการยืนยันตัวตนผ่าน API และ Webhook
ตัวสร้าง JWT
สร้าง JWT ที่มีการลงนาม โดยกำหนดหัวข้อ (header) แบบกำหนดเอง สิทธิ์ของพารามิเตอร์ในเนื้อหา (payload claims) การลงนามด้วย HMAC หรือ RSA รวมถึงกำหนดระยะเวลาหมดอายุและกลุ่มผู้ใช้งานที่อนุญาต เพื่อใช้ในการทดสอบ
เครื่องสร้างค่าแฮช MD5
คำนวณค่า checksum แบบ MD5 ของข้อความและไฟล์เพื่อยืนยันความสมบูรณ์ โดยผลลัพธ์จะตรงกับที่ได้จากฟังก์ชัน md5sum และ openssl dgst -md5
ตัวเข้ารหัสไฟล์ Base64
เข้ารหัสไฟล์ใดก็ได้ (PDF, ZIP, รูปภาพ, ไฟล์ปฏิบัติการ) เป็นข้อความ Base64 เพื่อฝังใน JSON, อีเมล, YAML หรือ data URI ทำงานในเครื่องของคุณ ไม่มีการอัปโหลด
ตัวระบุการเข้ารหัส
วางไซเฟอร์เท็กซ์หรือแฮช แล้วตัวระบุจะแนะนำอัลกอริทึมหรือการเข้ารหัสที่น่าจะเป็น: MD5, SHA, bcrypt, AES, RSA, Base64 และอื่น ๆ
ตัวสร้างแฮช (Hash Generator)
สร้างค่าแฮช MD5, SHA-1, SHA-256, SHA-384, SHA-512 และ CRC32 จากข้อความ พร้อมค่าไดเจสต์พร้อมคัดลอกสำหรับเช็คซัมและการเปรียบเทียบ
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Codificador de cifrado Vigenère [ES]
- Koder szyfru Vigenère [PL]
- ヴィジュネル暗号エンコーダー [JA]
- Bộ mã hóa Vigenère [VI]
- Codificador da cifra de Vigenère [PT]
- Vigenère-chifferkodare [SV]
- Encodeur de chiffre de Vigenère [FR]
- 비즈네르 암호 인코더 [KO]
- مشفّر فيجينير [AR]
- Vigenère-Verschlüsselungs-Encoder [DE]
- Penyandi Sandi Vigenère [ID]
- Vigenère-cijfercodeerder [NL]
- Vigenere Cipher Encoder [EN]
- Codificatore del cifrario di Vigenère [IT]
- Кодировщик шифра Виженера [RU]
- Vigenère Şifre Kodlayıcı [TR]
- 维吉尼亚密码编码器 [ZH]