รหัสโบฟอร์ต
เข้ารหัสและถอดรหัสโบฟอร์ต รหัสหลายอักษรที่อิงคำสำคัญซึ่งตั้งชื่อตามพลเรือเอกอังกฤษ Sir Francis Beaufort มันทำงานได้สองทาง: คำสำคัญเดียวกันทั้งเข้ารหัสและถอดรหัส จึงไม่มีโหมดถอดรหัสแยกต่างหาก ป้อนคำสำคัญแล้วดูการคำนวณก่อตัวขึ้นแบบสด ทุกอย่างทำงานในเบราว์เซอร์ของคุณ
โบฟอร์ตทำงานได้สองทาง: คำสำคัญเดียวกันทั้งเข้ารหัสและถอดรหัส ในการถอดรหัสข้อความ ให้วางข้อความเข้ารหัสและป้อนคำสำคัญเดียวกัน ผลลัพธ์ที่ได้คือข้อความต้นฉบับ ไม่มีปุ่มถอดรหัสแยกต่างหาก
คำสำคัญ
คำสำคัญคือความลับที่ผู้ส่งและผู้รับมีร่วมกัน มันจะวนซ้ำตลอดทั้งข้อความ และตัวอักษรแต่ละตัวกำหนดว่าตำแหน่งนั้นถูกลบไปไกลเท่าใด ใช้เฉพาะตัวอักษรเท่านั้น ช่องว่าง ตัวเลข หรือเครื่องหมายวรรคตอนใด ๆ ในคำสำคัญจะถูกละเว้น
ป้อนข้อความด้านบนเพื่อดูผลลัพธ์โบฟอร์ตที่นี่
วิธีใช้ รหัสโบฟอร์ต
- 1
ป้อนคำสำคัญ
พิมพ์คำสำคัญที่เป็นความลับร่วมกัน เช่น FORTIFICATION ใช้เฉพาะตัวอักษรของมันเท่านั้น ช่องว่าง ตัวเลข หรือเครื่องหมายวรรคตอนใด ๆ จะถูกละเว้น คำสำคัญเดียวกันถูกใช้ทั้งเข้ารหัสและถอดรหัส
- 2
พิมพ์หรือวางข้อความของคุณ
ป้อนข้อความที่คุณต้องการแปลง: ข้อความต้นฉบับเพื่อเข้ารหัส หรือข้อความเข้ารหัสโบฟอร์ตเพื่อถอดรหัส รหัสจะทำงานโดยอัตโนมัติขณะที่คุณพิมพ์ และการคำนวณทีละตัวอักษรจะอัปเดตแบบสดด้านล่าง
- 3
อ่านผลลัพธ์แบบสองทาง
เนื่องจากโบฟอร์ตทำงานได้สองทาง คำสำคัญเดียวกันจึงใช้ได้ทั้งสองทิศทาง ในการกู้คืนข้อความ ให้วางข้อความเข้ารหัสและป้อนคำสำคัญเดียวกันกับที่ใช้เข้ารหัสมัน ผลลัพธ์ที่ได้คือข้อความต้นฉบับ
- 4
ดู คัดลอก และแชร์
เปิดการคำนวณเพื่อดูว่าตัวอักษรแต่ละตัวถูกคำนวณอย่างไร แล้วคัดลอกผลลัพธ์ ดาวน์โหลดเป็นไฟล์ข้อความ หรือแชร์ลิงก์ที่จะเปิดเครื่องมือขึ้นมาใหม่พร้อมคำสำคัญและข้อความที่แน่นอนของคุณ
ทำความเข้าใจรหัสโบฟอร์ต
รหัสโบฟอร์ตคืออะไร
รหัสโบฟอร์ตเป็นรหัสแทนที่แบบหลายอักษรที่ตั้งชื่อตาม Sir Francis Beaufort พลเรือเอกแห่งราชนาวีอังกฤษซึ่งทุกวันนี้เป็นที่จดจำมากที่สุดจากมาตราวัดลมโบฟอร์ต มันมีความเกี่ยวข้องอย่างใกล้ชิดกับรหัส Vigenère: คำสำคัญที่วนซ้ำจะเลื่อนตัวอักษรแต่ละตัวของข้อความ ดังนั้นตัวอักษรต้นฉบับตัวเดียวกันจึงสามารถเข้ารหัสเป็นตัวอักษรเข้ารหัสได้หลายตัวต่างกันขึ้นอยู่กับตำแหน่งของมัน การกระจายตัวอักษรแต่ละตัวออกไปทั่วทั้งตัวอักษรนี่เองที่ทำให้รหัสหลายอักษรอ่านได้ยากกว่ารหัสเลื่อนแบบ Caesar ธรรมดามาก
สิ่งที่ทำให้โบฟอร์ตแตกต่างคือทิศทางของการคำนวณ แทนที่จะบวกกุญแจเข้ากับข้อความต้นฉบับอย่างที่ Vigenère ทำ โบฟอร์ตจะลบข้อความต้นฉบับออกจากกุญแจ การเปลี่ยนเพียงจุดเดียวนั้นให้คุณสมบัติที่มีประโยชน์ที่สุดแก่รหัสนี้: มันทำงานได้สองทาง หมายความว่าการดำเนินการเดียวกันทุกประการทั้งเข้ารหัสและถอดรหัส วิธีนี้ถูกพิมพ์ลงบนการ์ดใบเล็กที่ตีพิมพ์ไม่นานหลังจากโบฟอร์ตเสียชีวิตในปี 1857 และกฎสองทางเดียวกันนี้ภายหลังถูกสร้างเข้าไปในเครื่องโรเตอร์อย่าง Hagelin M-209 ที่ใช้กันในช่วงกลางศตวรรษที่ยี่สิบ
รหัสโบฟอร์ตทำงานอย่างไร
กำหนดหมายเลขตัวอักษรจาก A เป็น 0 ถึง Z เป็น 25 คำสำคัญจะถูกวนซ้ำมากเท่าที่จำเป็นเพื่อให้ตัวอักษรกุญแจหนึ่งตัววางเรียงอยู่ใต้ตัวอักษรทุกตัวของข้อความ สำหรับแต่ละตำแหน่ง คุณนำตัวอักษรกุญแจมาแล้วลบตัวอักษรข้อความต้นฉบับออกจากมัน แล้ววนผลลัพธ์รอบตัวอักษรด้วยเศษหารด้วย 26 เขียนเป็นสูตรได้ว่าตัวอักษรเข้ารหัสคือ C = (K − P) mod 26 เฉพาะตัวอักษรเท่านั้นที่ถูกแปลง ช่องว่าง ตัวเลข และเครื่องหมายวรรคตอนผ่านไปตรง ๆ และไม่กินตัวอักษรกุญแจ ดังนั้นคำสำคัญจึงยังคงเรียงตรงกับตัวอักษรที่สำคัญ
บนกระดาษ การคำนวณเดียวกันสามารถทำได้ด้วย tabula recta ตารางสี่เหลี่ยมของตัวอักษรที่เลื่อนทุกแบบ ในการเข้ารหัสตัวอักษรหนึ่งตัว คุณหาตัวอักษรข้อความต้นฉบับตามแถวบนสุด เลื่อนลงไปตามคอลัมน์นั้นจนถึงตัวอักษรคำสำคัญ แล้วอ่านตัวอักษรเข้ารหัสจากป้ายที่ปลายซ้ายสุดของแถวนั้น การค้นหานี้เป็นเพียงวิธีทางสายตาในการคำนวณการลบแบบเดียวกัน และมันคือสิ่งที่การคำนวณแบบสดด้านล่างเครื่องมือแสดงสำหรับตัวอักษรแต่ละตัวของข้อความคุณพอดี
ตัวอย่างประกอบ
เข้ารหัสข้อความ HELLO ด้วยคำสำคัญ KEY การวนซ้ำคำสำคัญให้ตัวอักษรกุญแจ K, E, Y, K, E เรียงอยู่ใต้ H, E, L, L, O การลบตัวอักษรข้อความต้นฉบับแต่ละตัวออกจากตัวอักษรกุญแจของมัน K ลบ H คือ 10 − 7 = 3 ซึ่งคือ D; E ลบ E คือ 0 ซึ่งคือ A; Y ลบ L คือ 24 − 11 = 13 ซึ่งคือ N; K ลบ L คือ 10 − 11 = −1 และเมื่อวนรอบได้ 25 ซึ่งคือ Z; สุดท้าย E ลบ O คือ 4 − 14 = −10 วนไปเป็น 16 ซึ่งคือ Q ข้อความเข้ารหัสคือ DANZQ
ตอนนี้ถอดรหัส DANZQ ด้วยคำสำคัญ KEY เดียวกันและการลบเดียวกัน K ลบ D คือ 10 − 3 = 7 ซึ่งคือ H; E ลบ A คือ 4 ซึ่งคือ E; Y ลบ N คือ 24 − 13 = 11 ซึ่งคือ L; K ลบ Z คือ 10 − 25 = −15 วนไปเป็น 11 ซึ่งคือ L; E ลบ Q คือ 4 − 16 = −12 วนไปเป็น 14 ซึ่งคือ O ผลลัพธ์คือ HELLO อีกครั้ง การดำเนินการที่เหมือนกันได้กู้คืนข้อความ ซึ่งเป็นจุดสำคัญทั้งหมดของรหัสโบฟอร์ต
ทำไมโบฟอร์ตจึงเป็นตัวผกผันของตัวมันเอง
คุณสมบัติสองทางตามมาจากสูตรโดยตรง การเข้ารหัสคำนวณ C = (K − P) mod 26 หากคุณป้อนข้อความเข้ารหัสนั้นกลับเข้าไปผ่านขั้นตอนเดียวกันด้วยกุญแจเดียวกัน คุณจะคำนวณ (K − C) mod 26 ซึ่งก็คือ (K − (K − P)) mod 26 ตัวอักษรกุญแจสองตัวตัดกันออก และคุณเหลือ P ข้อความต้นฉบับ เนื่องจากการลบในตัวอักษรแบบวงกลมนี้สมมาตรในลักษณะนั้น การเข้ารหัสสองครั้งจึงนำคุณกลับไปยังที่ที่คุณเริ่มต้น
นี่สะดวกอย่างแท้จริง ด้วย Vigenère คุณต้องจำว่าต้องบวกเมื่อเข้ารหัสและลบเมื่อถอดรหัส ดังนั้นสองทิศทางจึงใช้ขั้นตอนต่างกัน ด้วยโบฟอร์ตมีเพียงขั้นตอนเดียวที่ต้องเรียนรู้ และการตั้งค่าเครื่องเดียวหรือเครื่องมือเดียวสามารถใช้ได้ทั้งสองทิศทาง นั่นคือเหตุผลที่เครื่องมือนี้ไม่มีปุ่มถอดรหัสแยกต่างหาก: คุณเพียงป้อนคำสำคัญเดียวกันและวางข้อความใดก็ตามที่คุณต้องการแปลง
โบฟอร์ต Vigenère และโบฟอร์ตรูปแปร
การวางเรียงรหัสคำสำคัญที่เกี่ยวข้องกันอย่างใกล้ชิดทั้งสามแบบช่วยให้เข้าใจได้ดีขึ้น รหัส Vigenère บวก C = (P + K) mod 26 และต้องการการลบย้อนกลับเพื่อถอดรหัส รหัสโบฟอร์ตที่แท้จริงลบข้อความต้นฉบับออกจากกุญแจ C = (K − P) mod 26 และทำงานได้สองทาง ยังมีกฎที่สาม คือโบฟอร์ตรูปแปร ซึ่งบางครั้งเรียกว่าโบฟอร์ตเยอรมัน ที่ลบกุญแจออกจากข้อความต้นฉบับแทน C = (P − K) mod 26 รูปแปรนั้นคือขั้นตอนการถอดรหัส Vigenère ที่ถูกใช้เป็นการเข้ารหัสพอดี และไม่เหมือนกับโบฟอร์ตที่แท้จริง มันไม่ทำงานสองทาง ดังนั้นจึงต้องใช้การเข้ารหัส Vigenère เพื่อย้อนกลับมัน
เนื่องจากทั้งสามแบบใช้คำสำคัญที่วนซ้ำและ tabula recta ร่วมกัน จึงมักถูกสับสนกัน และข้อความที่เข้ารหัสด้วยแบบหนึ่งจะดูเป็นเรื่องไร้สาระภายใต้อีกแบบหนึ่ง เครื่องมือนี้ใช้โบฟอร์ตแบบสองทางคลาสสิก หากคุณต้องการกฎการบวกหรือรูปแปร เครื่องมือ Vigenère บน Text Machine ครอบคลุม Vigenère และโหมดที่เกี่ยวข้องของมัน
วิธีแกะรหัสโบฟอร์ต
โบฟอร์ตสืบทอดจุดแข็งและจุดอ่อนของรหัสหลายอักษรแบบกุญแจวนซ้ำใด ๆ การป้องกันของมันคือตัวอักษรข้อความต้นฉบับหนึ่งตัวจับคู่ไปยังตัวอักษรเข้ารหัสหลายตัวต่างกัน ซึ่งทำให้ยอดความถี่ตัวอักษรที่เห็นได้ชัดอันเป็นจุดที่เปิดเผยรหัสแทนที่แบบธรรมดาแบนราบลง จุดอ่อนของมันคือกุญแจวนซ้ำ เมื่อนักวิเคราะห์เดาความยาวของคำสำคัญได้ ข้อความเข้ารหัสจะแยกออกเป็นคอลัมน์ที่แต่ละคอลัมน์ถูกเข้ารหัสด้วยตัวอักษรกุญแจคงที่ตัวเดียว และทุกคอลัมน์กลายเป็นรหัสเลื่อนธรรมดาที่ยอมจำนนต่อการวิเคราะห์ความถี่
วิธีคลาสสิกในการหาความยาวกุญแจคือการตรวจสอบแบบ Kasiski ซึ่งมองหากลุ่มตัวอักษรที่ซ้ำกันและวัดระยะห่างระหว่างพวกมัน ร่วมกับดัชนีความบังเอิญ ซึ่งวัดว่าความถี่ตัวอักษรไม่สม่ำเสมอเพียงใด เมื่อทราบความยาวกุญแจแล้ว การกู้คืนตัวอักษรกุญแจแต่ละตัวก็รวดเร็ว การโจมตีทั้งหมดเป็นแบบเดียวกับที่แกะรหัส Vigenère ได้อย่างเลื่องลือ ดังนั้นข้อความโบฟอร์ตจึงแข็งแกร่งได้เพียงเท่าที่คำสำคัญของมันยาว คาดเดาไม่ได้ และใช้เพียงครั้งเดียว
รหัสโบฟอร์ตปลอดภัยหรือไม่
ไม่ ตามมาตรฐานสมัยใหม่ รหัสโบฟอร์ตไม่ให้ความปลอดภัยที่แท้จริง คำสำคัญที่สั้นหรือซ้ำจะถูกแกะอย่างรวดเร็วด้วยวิธี Kasiski และดัชนีความบังเอิญข้างต้น และแม้แต่คำสำคัญที่ยาวก็ไม่สามารถต้านทานนักวิเคราะห์ที่มุ่งมั่นพร้อมคอมพิวเตอร์ได้ มันอยู่ในยุคของรหัสมือและเครื่องเข้ารหัสยุคแรก ที่เสน่ห์ของมันคือกฎสองทางที่ชาญฉลาดและใช้ง่าย มากกว่าความแข็งแกร่งที่แกะไม่ได้
ทุกวันนี้รหัสโบฟอร์ตได้รับการยกย่องสำหรับการเรียนรู้และความบันเทิง มันเป็นวิธีที่ยอดเยี่ยมในการทำความเข้าใจการแทนที่แบบหลายอักษรและแนวคิดอันสง่างามของรหัสที่เป็นตัวผกผันของตัวเอง และมันปรากฏบ่อยครั้งในปริศนา ห้องหลบหนี และโจทย์แบบ capture-the-flag สำหรับการปกป้องข้อมูลจริง คุณควรพึ่งพาอัลกอริทึมสมัยใหม่ที่ผ่านการทดสอบมาอย่างดีเช่น AES แทน
คำถามที่พบบ่อย
รหัสโบฟอร์ตคืออะไร
รหัสโบฟอร์ตทำงานอย่างไร
รหัสโบฟอร์ตเหมือนกับรหัส Vigenère หรือไม่
ทำไมรหัสโบฟอร์ตจึงทำงานได้สองทาง
ขอตัวอย่างรหัสโบฟอร์ตได้ไหม
ฉันจะถอดรหัสโบฟอร์ตอย่างไร
รหัสโบฟอร์ตรูปแปรคืออะไร
ฉันควรใช้คำสำคัญอะไร
รหัสโบฟอร์ตเปลี่ยนช่องว่างและเครื่องหมายวรรคตอนหรือไม่
คุณแกะรหัสโบฟอร์ตอย่างไร
รหัสโบฟอร์ตปลอดภัยหรือไม่
ข้อความของฉันถูกอัปโหลดไปยังเซิร์ฟเวอร์หรือไม่
เครื่องมือที่เกี่ยวข้อง
ทำงานต่อด้วยเครื่องมือที่มีประโยชน์เหล่านี้