ตั้งค่าการอ่าน

ค่าเริ่มต้น

  • เลื่อนอัตโนมัติ
    น่ารู้รอบตัว เรื่องคณิตศาสตร์

    ลำดับตอนที่ #26 : ENIGMA : ยุทธการรหัสลับ

    • เนื้อหาตอนนี้เปิดให้อ่าน
    • 1.09K
      0
      5 ส.ค. 50

     ตีรหัสลับให้แตก 
    เมื่อวันก่อนนู้นผมได้ไปเยี่ยมบ้านญาติผู้พี่ พี่เขามีดีวีดีและระบบโฮมเธียเตอร์ครบครัน ผมก็ประเภทพวกเห่อเทคโนโลยี เห็นแล้วก็ตื่นเต้น ก็เลยขอให้พี่เขาเลือกหนังมาเปิด บอกไปว่า "พี่ เอาแบบซาวด์เอฟเฟคเจ๋งๆเลยนะ" พี่เขาก็เลือกหนังเรื่อง U-571 มา ผมไม่เคยดูหรอกหนังเรื่องนี้น่ะ เพราะปกติไม่ชอบหนังสงคราม แต่พอดูเรื่องนี้แล้วสนุกครับ ยิ่งมีระบบภาพจากดีวีดี และเสียงที่กระหึ่มยิ่งกว่าในโรงหนังด้วยแล้ว บอกได้คำเดียวครับว่า "ตะลึง" (ตะลึง ๆ ๆ ตะลึงตึ่งตึ่งตึ่ง ตะลึงตึงตึง ตะลึงตึงตึง ... ชะอุ๊ย ขออภัยครับ ไม่ได้เจตนาจะเทียบรุ่นกับน้องอนัน อันวาเลย)




    รูปที่ 1 เครื่อง Enigma




    U-571 ก็เป็นเรื่องของทหารอเมริกันกลุ่มหนึ่ง ที่ได้รับมอบหมายให้ไปทำการยึดเรือดำน้ำของฮิตเลอร์ที่ชื่อ U-571 ในช่วงสงครามโลกครั้งที่สอง จุดประสงค์หลักก็เพื่อทำการยึดเอาเครื่องอินิกมา (Enigma)ที่อยู่ในตัวเรือกลับมาฐานทัพ แล้วทำไมต้องเป็นเรือ U-571 แล้วจะยึดได้ไหม อย่างไร คงต้องติดตามดูเองนะครับ ถ้าบอกหมดแล้วคนที่ไม่เคยดูจะดูหนังไม่สนุก



    การที่กองทัพอเมริกันพยายามนักพยายามหนาที่จะยึดเครื่อง Enigma มาให้ได้ ก็เพราะว่า เครื่อง Enigma เป็นเครื่องที่ใช้ทำการ encrypt ข้อความ ที่ใช้ในการติดต่อสื่อสารระหว่างทหารเยอรมัน ในช่วงสงครามโลกครั้งนั้น การที่จะสามารถตีรหัสลับของพวกนาซีให้แตกได้ ก็จำเป็นต้องมีเครื่อง Enigma นี้ไว้ หน้าตาของเครื่อง Enigma ก็อย่างที่เห็นในรูปที่ 1นี่แหละครับ ดูเผินๆ ก็เหมือนเครื่องพิมพ์ดีดอยู่ในกล่องไม้ แต่มีกลไลซับซ้อนซ่อนเงื่อนมากกว่ากันเยอะ ขนาดของเครื่อง ก็วัดได้ 34x28x15 เซนติเมตร และก็หนักตั้ง 12 กิโลกรัมแน่ะ วันนี้เราจะมาดูประวัติ และกลไกการทำงานของเครื่อง Enigma กันครับ



    ไอเดียของเครื่อง Enigma นี้ มาจากวิศวกรไฟฟ้าชาวเยอรมัน ที่ชื่อ Arthur Scherbius เขาเริ่มประดิษฐ์เครื่อง Enigma ขึ้นในปี ค.ศ. 1918 เครื่อง Enigma ของเขา ประกอบด้วยสามส่วนใหญ่ๆ ซึ่งได้แก่ แป้นพิมพ์สำหรับป้อน plaintext หน่วยสลับสับเปลี่ยน (scramble unit) สำหรับ encrypt แต่ละตัวอักษรของ plaintext ให้กลายเป็น ciphertext และแป้นแสดงผล ซึ่งประกอบไปด้วย หลอดไฟเล็กๆ ที่แสดงตัวอักษร ciphertext ทุกครั้งที่ตัวอักษรใน plaintext ถูกป้อนทางแป้นพิมพ์ (ลองดูรูปที่ 2 ดูนะครับว่าแต่ละส่วนอยู่ตรงไหน)



    ส่วนที่สำคัญที่สุดก็คือส่วน scramble unit หรือที่เรียกว่า rotor ซึ่งประกอบไปด้วย แผ่นจานกลมๆ ที่มีแผงสายไฟ ซึ่งเป็นตัวกำหนดว่าตัวอักษรใดสลับกับตัวอักษรใด เราลองมาดู กลไกของมันในรูปที่ 3 กันนะครับ เพื่อความง่ายในการอธิบายกลไกของส่วนนี้ เราจะลดจำนวนตัวอักษรบนแป้นพิมพ์ และแป้นแสดงผลลงเหลือหกตัว คือ a, b, c, d, e, f สมมุติว่าเริ่มแรก ตัว rotor ถูกตั้งไว้ให้ a->B (หมายถึง ถ้าแป้นพิมพ์ตัวอักษร a ถูกกด จะทำให้แป้นแสดงตัวอักษร B สว่าง ซึ่งหมายความว่า ตัวอักษร a ถูก encrypt เป็น ตัวอักษร B), b->A, c->D, d->F, e->E, f->C ซึ่งดูแล้ว น่าจะเหมือนกับ ระบบรหัสลับแบบสับเปลี่ยน (monoalphabetic substitution cipher) ธรรมดาๆ




    รูปที่ 2 เครื่อง Enigma เปิดฝาให้เห็นเครื่องใน




    แต่ความไม่ธรรมดาของเครื่องนี้ อยู่ที่ว่า เมื่อแป้นพิมพ์ถูกกดครั้งหนึ่ง ตัว rotor จะหมุนไป 1/6 รอบ ทำให้เกิดการสับเปลี่ยนตัวอักษรที่ต่างจากเดิม หรือพูดอีกอย่างหนึ่งก็คือว่า ตารางสับเปลี่ยนถูกเปลี่ยนไปทุกครั้งที่แป้นพิมพ์ถูกกด อย่างในตัวอย่างจากรูปที่ 3 ตารางสับเปลี่ยน จะเปลี่ยนเป็น {a->D, b->C, c->B, d->E, e->A, f->F} และ {a->A, b->E, c->D, d->C, e->F, f->B} ตามลำดับ ดังนั้น เมื่อผมกดแป้นตัวอักษร b 3 ครั้งติดๆกันตั้งแต่เริ่มแรก ตัวอักษรที่สว่างก็จะเป็น A, C, E ตามลำดับ




    รูปที่ 3 แสดงกลไกอย่างง่ายของหน่วยสลับสับเปลี่ยน
    (ภาพจาก The Code Book โดย Simon Singh)





    แต่อย่างไรก็ตาม ถ้าเรากดตัวอักษร b 6 ครั้งติดๆกัน เราก็จะได้ ciphertext ACEBDC ถ้าเรากดตัวอักษร b ต่อไปเรื่อยๆ ciphertext ก็จะเริ่มซ้ำและดูเป็น pattern ขึ้นมา ซึ่ง cryptanalyst สามารถใช้ในการโจมตีระบบได้





    1064






    ท่านอาจจะสังเกตุได้ว่า การตั้งตำแหน่งของ rotor เริ่มแรกนั้น ถ้าตั้งไม่เหมือนกันจะได้ ciphertext ที่ต่างกัน ดังนั้นการตั้ง rotor ดังกล่าวจึงเปรียบเสมือนการเลือก "key" ที่ใช้ในการ encrypt หากเรามี rotor อันเดียว เราก็จะมี key เพียง 6 ตัวสำหรับเครื่อง Enigma อย่างง่ายของเราเพราะเราเลือกตั้ง rotor ได้ 6 ตำแหน่ง (หรือ 26 ตำแหน่งสำหรับ rotor ของจริง) เอ แล้วเราจะมีวิธีใดที่จะเพิ่มจำนวน key ได้บ้างล่ะครับ



    ปัญหานี้แก้ได้โดยเพิ่มตัว rotor อีกตัวเข้าไปครับ แต่ rotor ตัวที่สองนี้จะขยับก็ต่อเมื่อ rotor ตัวแรกหมุนครบรอบแล้วเท่านั้น ก็เหมือนกับหน้าปัดไมล์รถยนต์ ที่หลักสิบจะเปลี่ยนก็ต่อเมื่อหลักหน่วยหมุนครบรอบจนถึงเลข 9 แล้วเท่านั้น การเพิ่ม rotor ตัวที่สองเข้าไปนี้ ทำให้จำนวน key ที่จากเดิมมี 6 กลายเป็น 6x6 = 36 ตัว (หรือ 26x26= 676 ตัว สำหรับของจริง) สำหรับเครื่อง Enigma มาตรฐานนั้น เขาใช้ rotor สามตัวครับ ดังนั้นจำนวน key ของเราก็น่าจะเป็น 26x26x26= 17,576 ตัว ใช่ไหมครับ แต่จริงๆแล้วมีมากกว่านั้นครับ เพราะเขาเพิ่มเติมชิ้นส่วนอะไรบางอย่างเข้าไปอีก แล้วสงสัยไหมครับว่าผู้รับปลายทางจาก decrypt ข้อมูลได้อย่างไร เดี๋ยวฉบับหน้า มาคุยกันต่อครับ




    ผู้เขียน: บุญฤทธิ์ อินทิยศ

    ติดตามเรื่องนี้
    เก็บเข้าคอลเล็กชัน

    นิยายที่ผู้อ่านนิยมอ่านต่อ ดูทั้งหมด

    loading
    กำลังโหลด...

    อีบุ๊ก ดูทั้งหมด

    loading
    กำลังโหลด...

    ความคิดเห็น

    ×