เครื่องมือเข้ารหัส Vigenère

รหัส Vigenère ได้รับการอธิบายครั้งแรกโดยโจวาน บัตติสตา เบลลาโซ ในปี ค.ศ. 1553 และต่อมาถูกเข้าใจผิดว่าเป็นผลงานของบลาซ เดอ วีฌเนร์ รหัสนี้เลื่อนตัวอักษรแต่ละตัวไปในปริมาณที่ต่างกันตามคำสำคัญที่วนซ้ำ แม้จะถูกเรียกว่า “le chiffre indéchiffrable” (รหัสที่ถอดไม่ได้) นานถึง 300 ปี แต่สุดท้ายก็ถูกเจาะด้วยการโจมตีเชิงสถิติของฟรีดริช คาซิสกี ในปี ค.ศ. 1863 เครื่องมือนี้ให้คุณเข้ารหัสและถอดรหัสสำหรับปริศนา โจทย์ CTF และการเรียนการสอนวิทยาการรหัสลับในห้องเรียน

วิธีใช้รหัส Vigenère

  1. 1

    ป้อนข้อความของคุณ

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

  2. 2

    ตั้งคำสำคัญ

    เลือกคำหรือวลีใดก็ได้ นับเฉพาะตัวอักษรของมัน และคำสำคัญที่ยาวกว่าจะเจาะได้ยากกว่า

  3. 3

    เลือกเข้ารหัสหรือถอดรหัส

    เครื่องมือเดียวกันจัดการได้ทั้งสองทิศทางด้วยตาราง Vigenère

  4. 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 จากข้อความ พร้อมค่าไดเจสต์พร้อมคัดลอกสำหรับเช็คซัมและการเปรียบเทียบ

เครื่องมือนี้มีให้บริการในภาษาอื่น