รหัส ADFGX / ADFGVX
เข้ารหัสและถอดรหัส ADFGX และ ADFGVX ซึ่งเป็นรหัสภาคสนามของกองทัพเยอรมันในสงครามโลกครั้งที่หนึ่ง ตัวอักษรแต่ละตัวถูกแยกออกเป็นตัวอักษรป้ายกำกับสองตัวจากตาราง Polybius ก่อน (ขั้นการแยกตัว) จากนั้นสายอักษรทั้งหมดถูกสับด้วยคำสำคัญสำหรับการสลับตำแหน่งแบบคอลัมน์ ผสมตาราง ตั้งกุญแจสลับตำแหน่ง ติดตามการทำงานสองขั้นแบบสด แล้วคัดลอก ดาวน์โหลด หรือแชร์ผลลัพธ์ ทุกอย่างทำงานในเบราว์เซอร์ของคุณ
กุญแจตาราง
กุญแจสลับตำแหน่ง
กุญแจตารางสับตาราง Polybius ที่แยกตัวอักษรแต่ละตัว ส่วนกุญแจสลับตำแหน่งกำหนดคอลัมน์ที่สับผลลัพธ์ ทั้งสองฝ่ายต้องใช้ตารางและกุญแจชุดเดียวกัน เว้นกุญแจสลับตำแหน่งไว้ว่างเพื่อดูขั้นการแยกตัวเพียงอย่างเดียว
ป้อนข้อความด้านบนเพื่อดูผลลัพธ์ที่นี่
ตาราง ADFGX
A
D
F
G
X
A
D
F
G
X
วิธีใช้ รหัส ADFGX / ADFGVX
- 1
เลือกเข้ารหัสหรือถอดรหัสและตาราง
เลือกเข้ารหัสเพื่อเปลี่ยนข้อความธรรมดาเป็นข้อความรหัส ADFGX หรือถอดรหัสเพื่อเปลี่ยนข้อความรหัสกลับ เลือกตาราง 5×5 ADFGX สำหรับตัวอักษร หรือตาราง 6×6 ADFGVX เพื่อรองรับตัวเลขด้วย
- 2
ตั้งคำสำคัญสองคำ
ป้อนคำสำคัญสำหรับตารางแบบไม่บังคับเพื่อสับตาราง Polybius และคำสำคัญสำหรับสลับตำแหน่งเพื่อขับเคลื่อนขั้นแบบคอลัมน์ ทั้งสองฝ่ายต้องใช้ตารางและกุญแจชุดเดียวกัน เว้นกุญแจสลับตำแหน่งไว้ว่างเพื่อดูการแยกตัวเพียงอย่างเดียว
- 3
พิมพ์หรือวางข้อความของคุณ
ป้อนข้อความของคุณแล้วมันจะถูกแปลงขณะที่คุณพิมพ์ แผงขั้นตอนแสดงตัวอักษรแต่ละตัวไว้เหนือป้ายกำกับสองตัวของมัน จากนั้นป้ายกำกับที่เติมลงในคอลัมน์ที่มีกุญแจ
- 4
อ่านตาราง
เปิดตาราง ADFGX เพื่อดูตัวอักษรทุกตัวพร้อมป้ายกำกับแถวและคอลัมน์ของมัน และช่องของคำสำคัญใด ๆ ที่ถูกเน้นไว้
- 5
คัดลอก ดาวน์โหลด หรือแชร์
คัดลอกผลลัพธ์ ดาวน์โหลดเป็นไฟล์ข้อความ หรือแชร์ลิงก์ที่จะเปิดเครื่องมือขึ้นมาใหม่พร้อมข้อความ ตาราง และคำสำคัญที่แน่นอนของคุณพร้อมใช้งานทันที
ทำความเข้าใจรหัส ADFGX และ ADFGVX
รหัส ADFGX / ADFGVX คืออะไร
รหัส ADFGX เป็นรหัสภาคสนามที่คิดค้นโดยนายทหารกองทัพเยอรมัน Fritz Nebel และนำมาใช้งานในแนวรบด้านตะวันตกเมื่อเดือนมีนาคม ค.ศ. 1918 ใกล้สิ้นสุดสงครามโลกครั้งที่หนึ่ง รูปแบบขยายของมันคือ ADFGVX ตามมาในเดือนมิถุนายน ค.ศ. 1918 รหัสนี้ได้ชื่อมาจากตัวอักษรเพียงไม่กี่ตัวที่ปรากฏในผลลัพธ์เท่านั้น — A, D, F, G, X สำหรับเวอร์ชันดั้งเดิม และ A, D, F, G, V, X สำหรับเวอร์ชันขยาย ตัวอักษรเหล่านั้นถูกเลือกอย่างจงใจ: ในรหัสมอร์สพวกมันแตกต่างกันมาก ดังนั้นแม้การส่งวิทยุที่ผิดเพี้ยนอย่างหนักก็ยากที่จะทำให้ตัวหนึ่งกลายเป็นอีกตัวหนึ่ง
ADFGX เป็นรหัสสลับตำแหน่งแบบแยกตัว ซึ่งหมายความว่ามันทำงานในสองขั้น ขั้นแรกมันแยกตัวอักษรทุกตัวออกเป็นสองสัญลักษณ์โดยใช้ตาราง Polybius (การแยกตัว) จากนั้นมันสับสายของสัญลักษณ์ผลลัพธ์ด้วยการสลับตำแหน่งแบบคอลัมน์ที่ขับเคลื่อนด้วยคำสำคัญ ไม่มีขั้นใดขั้นหนึ่งที่แข็งแกร่งโดยลำพัง แต่การผสมการแทนที่เข้ากับการสลับตำแหน่งกระจายข้อมูลของตัวอักษรแต่ละตัวไปทั่วทั้งข้อความ ซึ่งทำให้ ADFGVX เป็นหนึ่งในรหัสภาคสนามที่ถอดยากที่สุดในยุคของมัน
ADFGX หรือ ADFGVX: ตารางใด
ADFGX ใช้ตาราง 5×5 ที่บรรจุ 25 ช่อง ชุดอักษรละตินมี 26 ตัวอักษร ดังนั้น I และ J จึงใช้ช่องร่วมกัน ตรงตามตาราง Polybius แบบคลาสสิกเป๊ะ ๆ; J ที่ถอดได้จึงอ่านกลับเป็น I การติดป้ายแถวและคอลัมน์ทั้งห้าคือ A, D, F, G และ X นี่คือรหัสดั้งเดิมของปี 1918 และมันรองรับได้เพียงตัวอักษรเท่านั้น
ADFGVX เพิ่มป้ายกำกับตัวที่หก คือ V เพื่อทำให้เป็นตาราง 6×6 ของ 36 ช่อง ที่ว่างเพิ่มขึ้นนั้นทำให้มันบรรจุตัวอักษรทั้ง 26 ตัวได้โดยไม่มีตัวใดถูกรวมกัน รวมทั้งตัวเลขสิบตัวตั้งแต่ 0 ถึง 9 จึงสามารถเข้ารหัสตัวเลขได้ — สำคัญยิ่งสำหรับการส่งพิกัดแผนที่ วันที่ และหมายเลขหน่วย — โดยไม่ต้องสะกดออกมา เลือกตารางด้วยปุ่มสลับด้านบน; ตารางอ้างอิงสดจะติดป้ายแถวและคอลัมน์ใหม่ให้ตรงกัน
ตาราง ป้ายกำกับ และคำสำคัญสองคำ
หัวใจของรหัสนี้คือตาราง การอ่านช่องของตัวอักษรหนึ่งให้ป้ายกำกับแถวและป้ายกำกับคอลัมน์ และคู่ป้ายกำกับนั้นคือรหัสของตัวอักษร เครื่องมือนี้สร้างตารางจากคำสำคัญสำหรับตารางแบบไม่บังคับ ตรงตามตาราง Polybius หรือ Playfair แบบมีกุญแจ: ตัวอักษรที่ไม่ซ้ำของคำสำคัญถูกเขียนลงไปก่อน ตามลำดับและไม่ซ้ำกัน แล้วชุดอักษรที่เหลือจึงตามมา ตารางสดจะเน้นช่องของคำสำคัญไว้ คุณจึงเห็นการสับได้ ในอดีตตารางเป็นการสับแบบสุ่ม; คำสำคัญเป็นวิธีที่สะดวกและทำซ้ำได้เพื่อให้ได้ผลแบบเดียวกัน
ADFGX ต้องใช้ความลับตัวที่สองที่เป็นอิสระ: คำสำคัญสำหรับการสลับตำแหน่ง หลังจากตัวอักษรทุกตัวถูกเปลี่ยนเป็นคู่ของป้ายกำกับแล้ว สายทั้งหมดถูกเขียนเป็นแถวใต้คำสำคัญนี้ และคอลัมน์ถูกอ่านออกตามลำดับตัวอักษรของตัวอักษรในกุญแจ กุญแจทั้งสองทำหน้าที่ต่างกัน — กุญแจตารางตัดสินว่าตัวอักษรแต่ละตัวกลายเป็นอะไร ส่วนกุญแจสลับตำแหน่งตัดสินว่าแต่ละครึ่งลงเอยที่ใด — และทั้งสองฝ่ายต้องใช้ทั้งคู่ร่วมกัน เว้นกุญแจสลับตำแหน่งไว้ว่างในเครื่องมือนี้เพื่อเฝ้าดูขั้นการแยกตัวเพียงอย่างเดียว
รหัส ADFGX ทำงานอย่างไร
การเข้ารหัสเกิดขึ้นในสองขั้น ขั้นที่หนึ่ง การแยกตัว: ตัวอักษรแต่ละตัวของข้อความถูกหาในตารางแล้วแทนด้วยป้ายกำกับของแถวตามด้วยป้ายกำกับของคอลัมน์ ข้อความ N ตัวอักษรกลายเป็นสายของตัวอักษรป้ายกำกับ 2N ตัว ขั้นที่สอง การสลับตำแหน่ง: สายนั้นถูกเขียนออกมาเป็นแถวใต้คำสำคัญสำหรับสลับตำแหน่ง โดยมีคอลัมน์มากเท่าจำนวนตัวอักษรของคำสำคัญ จากนั้นคอลัมน์ถูกหยิบออกทีละคอลัมน์ตามลำดับตัวอักษรของตัวอักษรในคำสำคัญ และต่อเข้าด้วยกันเป็นข้อความรหัส ตามธรรมเนียมเขียนเป็นกลุ่มละห้าตัว
การสลับตำแหน่งคือสิ่งที่ให้ความแข็งแกร่งแก่รหัสนี้ หลังการแยกตัว สองครึ่งของตัวอักษรหนึ่งวางอยู่เคียงข้างกัน; การอ่านออกแบบคอลัมน์จึงดึงพวกมันแยกออกจากกันและกระจายไปท่ามกลางครึ่งของตัวอักษรอื่น ดังนั้นการกู้ตัวอักษรข้อความธรรมดาตัวใดตัวหนึ่งกลับมาจึงต้องแก้การสลับตำแหน่งของทั้งข้อความก่อน เครื่องมือด้านบนแสดงทั้งสองขั้นแบบสด: แผงการแยกตัววางตัวอักษรแต่ละตัวไว้เหนือป้ายกำกับสองตัวของมัน และแผงการสลับตำแหน่งแสดงสายป้ายกำกับที่เติมลงในคอลัมน์ที่มีกุญแจพร้อมหมายเลขลำดับการอ่าน
ตัวอย่าง ADFGX ประกอบ
ลองนำคำว่า ATTACK มากับตาราง 5×5 แบบธรรมดาและกุญแจสลับตำแหน่ง KEY แยกตัวอักษรแต่ละตัวออกเป็นป้ายกำกับแถวและคอลัมน์ของมัน: A คือ AA, T คือ GG, T คือ GG, A คือ AA, C คือ AF และ K คือ DX การต่อเข้าด้วยกันให้สายป้ายกำกับ AAGGGGAAAFDX ยาวเป็นสองเท่าของหกตัวอักษรเดิม
ทีนี้สลับตำแหน่ง กุญแจ KEY มีสามตัวอักษร ดังนั้นเขียนสายเป็นสามคอลัมน์ — AAG, GGG, AAA, FDX เป็นสี่แถว — ใต้หัวคอลัมน์ K, E, Y อ่านคอลัมน์ตามลำดับตัวอักษรของหัวคอลัมน์: E ก่อนให้ A G A D, แล้ว K ให้ A G A F, แล้ว Y ให้ G G A X เมื่อต่อเข้าด้วยกันและจับกลุ่มทีละห้า ATTACK เข้ารหัสเป็น AGADA GAFGG AX การเพิ่มคำสำคัญสำหรับตาราง หรือเปลี่ยนกุญแจสลับตำแหน่ง จะเปลี่ยนผลลัพธ์ไปอย่างสิ้นเชิงในขณะที่ยังถอดกลับเป็น ATTACK ได้
การถอดรหัสข้อความ ADFGX
การถอดรหัสทำสองขั้นย้อนกลับ จากความยาวของข้อความรหัสและคำสำคัญสำหรับสลับตำแหน่ง คุณสามารถคำนวณได้อย่างแม่นยำว่ามีตัวอักษรป้ายกำกับกี่ตัวอยู่ในแต่ละคอลัมน์; ข้อความรหัสถูกหั่นกลับเข้าไปในคอลัมน์เหล่านั้น คอลัมน์ถูกจัดกลับเข้าลำดับเดิม และการอ่านข้ามแถวสร้างสายป้ายกำกับที่แยกตัวขึ้นใหม่ การหยิบสายนั้นทีละสองป้ายกำกับ — ป้ายกำกับแถวแล้วตามด้วยป้ายกำกับคอลัมน์ — และหาแต่ละคู่ในตาราง กู้ตัวอักษรเดิมคืนมา เครื่องมือทำทั้งหมดนี้ให้คุณเมื่อคุณเลือกถอดรหัส
การจะถอดรหัสให้ถูกต้องคุณต้องใช้ตารางเดียวกัน (เวอร์ชันเดียวกันและคำสำคัญสำหรับตารางเดียวกัน) และคำสำคัญสำหรับสลับตำแหน่งเดียวกันกับที่ใช้เข้ารหัส ทำผิดข้อใดข้อหนึ่งแล้วคอลัมน์จะถูกตัดผิดตำแหน่ง ป้ายกำกับจึงจับคู่ผิด และผลลัพธ์อ่านไม่ออก — ซึ่งเป็นคุณสมบัติที่ทำให้รหัสนี้มีประโยชน์ในภาคสนามพอดี เพราะมีเพียงตัวอักษรเท่านั้นที่อยู่ในตาราง 5×5 และมีเพียงตัวอักษรกับตัวเลขในตาราง 6×6 อักขระอื่นใดในข้อความต้นฉบับจึงถูกตัดทิ้งระหว่างการเข้ารหัสและจะไม่ปรากฏกลับมาอีก
ประวัติ Painvin และความปลอดภัย
ADFGVX มีชื่อเสียงไม่เพียงเพราะการออกแบบของมัน แต่เพราะถูกถอดได้ ในเดือนมิถุนายน ค.ศ. 1918 ขณะที่การรุกฤดูใบไม้ผลิของเยอรมนีดันเข้าหากรุงปารีส นักวิเคราะห์รหัสชาวฝรั่งเศส Georges Painvin ถอดข้อความ ADFGVX ที่ดักจับได้สำเร็จหลังหลายสัปดาห์ของการทำงานอันเหน็ดเหนื่อย รวมถึงข้อความหนึ่งที่ต่อมาถูกเรียกว่าวิทยุโทรเลขแห่งชัยชนะ เพราะมันเปิดเผยว่าฝ่ายเยอรมันตั้งใจจะโจมตีที่ใด การถอดของเขาเป็นหนึ่งในวีรกรรมที่ได้รับการยกย่องมากที่สุดของการวิเคราะห์รหัสในสงครามโลกครั้งที่หนึ่งและช่วยให้ฝ่ายสัมพันธมิตรคาดการณ์การจู่โจมได้
ตามมาตรฐานสมัยใหม่ ADFGVX ไม่ปลอดภัย การผสมการแยกตัวกับการสลับตำแหน่งของมันเอาชนะการวิเคราะห์ความถี่อย่างง่าย แต่มันพ่ายแพ้ต่อวิธีที่ Painvin บุกเบิกและต่อการโจมตีด้วยความช่วยเหลือของคอมพิวเตอร์สมัยใหม่ โดยเฉพาะเมื่อหลายข้อความใช้กุญแจชุดเดียวกันหรือมีข้อความรหัสมากพอ ในวันนี้คุณค่าของมันคือการศึกษา: มันเป็นการสาธิตที่ชัดเจนและลงมือทำได้ว่าการซ้อนการแทนที่กับการสลับตำแหน่งเสริมความแข็งแกร่งให้รหัสได้อย่างไร สำหรับการปกป้องข้อมูลจริง จงใช้อัลกอริทึมสมัยใหม่ที่ผ่านการตรวจทานโดยผู้เชี่ยวชาญเสมอ เช่น AES และเก็บ ADFGX ไว้สำหรับประวัติศาสตร์ ปริศนา และการแข่งขันแคปเจอร์เดอะแฟล็ก
คำถามที่พบบ่อย
รหัส ADFGX คืออะไร
อะไรคือความแตกต่างระหว่าง ADFGX และ ADFGVX
ทำไมจึงใช้ตัวอักษร A, D, F, G, V และ X
รหัส ADFGX ทำงานอย่างไร
คำสำคัญสองคำมีไว้เพื่ออะไร
ขอตัวอย่าง ADFGX ประกอบได้ไหม
คุณถอดรหัสข้อความ ADFGX อย่างไร
ใครเป็นผู้ถอดรหัส ADFGVX
การแยกตัวในรหัสคืออะไร
ตาราง ADFGVX จำเป็นต้องสุ่มหรือไม่
รหัส ADFGX ปลอดภัยแค่ไหน
ข้อความของฉันถูกอัปโหลดไปยังเซิร์ฟเวอร์หรือไม่
เครื่องมือที่เกี่ยวข้อง
ทำงานต่อด้วยเครื่องมือที่มีประโยชน์เหล่านี้