อีนิกม่า (Enigma)
อีนิกม่า (Enigma) เครื่องสร้างปริศนารหัสลับระดับโลก!
โลโก้ของเครื่องอีนิกม่า (Enigma)
ขอบคุณภาพจาก http://mmp.maths.org/sites/mmp.maths.org/files/Enigma_badge_small.jpg
วันนี้เราจะไปเจาะลึกเครื่องสร้างรหัสระดับตำนานกัน โดยเรื่องราวของมันน่าทึ่งและสร้างแรงบันดาลใจเป็นอย่างมาก และมันยังแสดงให้เห็นว่านักคณิตศาสตร์ได้ช่วยรักษาชีวิตผู้คนไว้อย่างมากมายในช่วงสงครามโลกครั้งที่ 2 ได้อย่างไร
เครื่องอีนิกม่า (Enigma machine)
ขอบคุณภาพจาก http://upload.wikimedia.org/wikipedia/commons/3/3c/Four-rotor-enigma.jpg
เรากำลังพูดถึงหนึ่งในเครื่องจักรทางวิทยาศาสตร์ที่มีชื่อเสียงที่สุดเครื่องหนึ่งตลอดกาล ชื่อของมันก็คือ 'เครื่องอีนิกม่า (Enigma machine)' มันถูกใช้โดยพวกนาซีเยอรมนีในช่วงสงครามโลกครั้งที่ 2 เพื่อเข้ารหัสข้อความลับที่ส่งถึงพวกเดียวกันในช่วงสงคราม และป้องกันไม่ให้ฝ่ายตรงข้ามรับรู้เนื้อหาของข้อความนั้น
วิธีใช้งานเครื่องอีนิกม่าก็ง่ายดาย ข้อความประกอบด้วยตัวอักษร (ภาษาอังกฤษ) หลายตัว ผู้ใช้ก็แค่กดแป้นตัวอักษรที่ต้องการที่อยู่สามแถวล่าง จากนั้นรหัสก็จะปรากฏเป็นแป้นไฟเรืองขึ้นมาในส่วนกลาง ๆ ของเครื่องอีนิกม่า อย่างในรูปข้างล่างนี้ หากกดแป้น N ตัวอักษร Y ก็จะติดไฟเรืองขึ้นมา
การสาธิตการใช้เครื่องอีนิกม่า
ขอบคุณภาพจาก https://www.youtube.com/watch?v=G2_Q9FoD-oQ
สมมติเรามีคำว่า ENUMBER ค่อยๆกดปุ่มเข้ารหัสทีละตัว จะได้ผลลัพธ์เป็นดังนี้
ตัวอักษร => รหัสที่ได้จากเครื่องอีนิกม่า
E => Y
N => Y
U => T
M => H
B => M
E => W
R => I
แต่จะเห็นว่า เราได้รหัสลับออกมาเป็นตัว Y ถึง 2 ตัว ทั้ง ๆ ที่กดแป้นต่างกัน (E กับ N) และก็น่าสนใจอีกจุดตรงที่ แม้จะกดแป้นเดียวกัน (E) แต่รหัสลับที่ได้กลับออกมาต่างกัน (กด E 2 ครั้ง ครั้งแรกได้ Y ครั้งที่สองได้ W) พวกเยอรมันเลยคิดว่านี่เป็นเครื่องสร้างรหัส ที่ไม่มีใครอีกแล้วในโลกที่จะล่วงรู้วิธีการถอดรหัสหรือเข้าใจข้อความต้นฉบับได้ ซึ่งถ้าเทียบกับวิธีการเข้ารหัสแบบเก่าก่อน ตัวอักษรเดียวกันจะต้องถูกเข้ารหัสแบบเดียวกัน และได้ผลออกมาเป็นตัวอักษรเดียวกันด้วย แต่เครื่องอีนิกม่านั้นต่างออกไป ทุกๆ ครั้งที่พยายามจะเข้ารหัสตัวอักษร ผลที่ได้นั้นจะแตกต่างกันไปอย่างสิ้นเชิง
ถ้าเราถอดรหัสนี้ได้ คำว่าเรา หมายถึง พวกโปแลนด์ พวกอังกฤษ และพวกอเมริกัน ถ้าเราถอดรหัสข้อความได้ในช่วงสงครามโลกครั้งที่ 2 เราก็จะสามารถอ่านข้อความลับที่พวกเยอรมันส่งถึงกันได้
เอาล่ะทีนี้มาดูการทำงานของเครื่องอีนิกม่านี้กัน เมื่อเปิดฝาเครื่องจักรขึ้น จะเจอจานหมุน 3 อัน เบื้องหลังของจานหมุนเหล่านี้ถูกโยงกันด้วยวงจรเชื่อมต่อแบบข้ามกันไปมา ถ้าเรากดแป้นตัวอักษร จานหมุนอันขวาสุดจะหมุน เมื่อหมุนได้ครบ 4 รอบ มันจะไปผลักให้จานกลางหมุนไปหนึ่งหลัก และจานขวาก็ยังคงหมุนต่อไปถ้ามีการกดแป้นตัวอักษร และจานกลางก็จะหมุนไปจนครบ 4 รอบ แล้วมันก็จะไปผลักให้จานซ้ายสุดหมุนไปหนึ่งหลักเช่นกัน อาจจะคิดเทียบกับการทำงานนาฬิกาก็ได้ มีเข็มวินาที เข็มนาที และเข็มชั่วโมง หมุนตามกันไป
โดยจานหมุนของเครื่องอีนิกม่าแต่ละตัวมีความเร็วในการหมุนไม่เท่ากัน คือ เมื่อตัวที่ 1 หมุนครบ 26 ครั้ง (A-Z) ตัวทีสองจะหมุนไป 1 ครั้ง และถ้าตัวที่ 2 หมุนครบ 26 ตัวที่3 ก็จะเลื่อนไป ไป ครั้ง เป็นแบบนี้ไปเรื่อยๆ โดยเราสามารถ จะเลือกแบบของวงล้อได้ โดยทั่วไป เครื่องอีนิกม่า จะมีวงล้อให้เลือก 5 ตัว (I-V) และยังมีรูปแบบการทำงานของ Reflector อีก 2 แบบ (B,C)
เหตุผลที่เครื่องอีนิกม่าต้องมีจานหมุน ก็เพื่อให้ตัวอักษรตัวเดียวกัน แปลงเป็นตัวอักษรไม่เหมือนกันในการเข้ารหัสครั้งถัดไป หากเราไม่ทำอย่างนี้แล้ว ฝ่ายสัมพันธมิตรจะเดาการแปลงตัวอักษรได้ง่ายขึ้นด้วยการนับความถี่ของแต่ละตัวที่ปรากฏ เช่น E คือตัวอักษรที่ใช้บ่อยที่สุดในภาษาอังกฤษ หากเราเห็นตัว P ปรากฏบ่อยที่สุดในข้อมูลที่แปลงแล้ว เราอาจเดาได้ว่า P คือ E เป็นต้น
อีนิกม่ามีขนาดเล็ก พกพาไปไหนสะดวก จึงสะดวกกับการใช้งานทางทหารอย่างยิ่ง นอกจากนั้นหน่วยทหารแต่ละกองยังสามารถตั้งรหัสให้เข้าใจได้แต่ในพวกเดียวกัน (เช่นเฉพาะกองทัพเรือ เฉพาะกองทัพอากาศ) ซึ่งทำได้ด้วยการตั้งค่าลูกล้อให้ต่างกันไป ตอนที่สงครามโลกครั้งที่สองเริ่มระอุนั้น กองทัพเยอรมันก็ใช้งานอีนิกม่าอย่างกว้างขวางแล้ว
ขอขอบคุณข้อมูลจาก
- https://www.youtube.com/watch?v=G2_Q9FoD-oQ
- http://topicstock.pantip.com/wahkor/topicstock/2008/11/X7242577/X7242577.html
กลับไปที่เนื้อหา
อีนิกม่า (Enigma) เครื่องสร้างปริศนารหัสลับระดับโลก! (ต่อ)
ตลอดช่วงสงครามโลกครั้งที่สอง เยอรมันได้พัฒนาอีนิกม่าอยู่เสมอ เช่นเพิ่มล้อหมุนจาก 3 เป็น 5 และทำให้ล้อหมุนนี้วิ่งไปลำดับใดก็ได้ คือจะตั้งค่าให้ล้อไหนจะเป็นล้อชั่วโมง ล้อนาที ก็ได้ ซึ่งทำให้การถอดรหัสยากขึ้นไปอีก ไม่เพียงเท่านั้นเยอรมันจะเลือกใช้ล้อหมุนเพียงสามตัวจากห้าตัวที่มีอยู่ การจะแกะรหัสด้วยการเดาจึงต้องเดาทั้งลูกล้อไหนที่จะใช้ และใช้ในลำดับใด ด้วยคุณสมบัติเหล่านี้ เยอรมันจึงเชื่อมั่นว่าไม่มีใครจะแกะรหัสอีนิกม่าออกได้เลย
เจ้าหน้าที่กองทัพกำลังใช้เครื่องอีนิกม่า
ขอบคุณภาพจาก http://upload.wikimedia.org/wikipedia/commons/e/ef/Bundesarchiv_Bild_101I-241-2173-06,_Russland,_Verschl%C3%BCsselungsger%C3%A4t_Enigma.jpg
มีการเริ่มต้นศึกษาเครื่องอีนิกม่า ในปี ค.ศ.1930 ก่อนที่เยอรมนีจะบุกโปแลนด์ ในปี ค.ศ.1939 โดยหน่วยราชการลับของโปแลนด์ โดยการรวบรวมข้อมูล รูปภาพและสร้างเครื่องจำลองอีนิกม่า (Enigma Replica) ได้สำเร็จ แต่การถอดรหัสก็ยังไม่ใช่เรื่องง่าย ทีมงานถอดรหัสของโปแลนด์ประกอบไปด้วยนักคณิตศาสตร์ นักถอดรหัส ในปี ค.ศ. 1939 ที่เยอรมนีบุกโปแลนด์ทำให้ผลงานการวิจัยศึกษาอีนิกม่า ถูกส่งต่อไปยังฝ่ายพันธมิตรคือฝรั่งเศสและสหราชอาณาจักร แต่การบุกของเยอรมนีได้รุกคืบมายังฝรั่งเศสอย่างรวดเร็ว ฝรั่งเศสยังไม่ได้พัฒนาต่อ ทีมโปแลนด์ที่พยายามแกะอีนิกม่าประกอบด้วย Marian Rejewski, Jerzy Rozycki และ Henryk Zygalski ทีมนี้มีที่มาตั้งแต่ต้นปี 1929 เมื่ออาจารย์ Krygowski แห่งภาคคณิตศาสตร์ มหาวิทยาลัย Poznan ได้รวบรวมรายชื่อนักเรียนปีสามและสี่ที่รู้ภาษาเยอรมัน และมีผลการเรียนในเกณฑ์ดี มาร่วมเรียนวิชา Cryptology (การเข้ารหัสและถอดรหัสข้อมูล) ในโครงการลับที่มีทหารมาร่วมด้วย นักเรียนราวยี่สิบคนที่ได้รับเลือกจะต้องปฏิญาณตนว่าจะเก็บเรื่องนี้เป็นความลับ สาเหตุที่มหาวิทยาลัยนี้ได้รับเลือกเป็นที่ตั้งทีม ก็เพราะนักเรียนส่วนใหญ่มาจากดินแดนที่เคยถูกครอบครองโดยเยอรมันมาก่อน และผ่านการเรียนในโรงเรียนที่สอนเป็นภาษาเยอรมัน ในวิชา Cryptology นั้น อาจารย์นำโค้ดยาก ๆ มาลองให้นักเรียนแก้เล่น และสอนความรู้ไปด้วยพร้อมกัน นักเรียนจำนวนมากต้องยกเลิกกลางคัน บ้างเพราะตามไม่ทัน บ้างเพราะรู้สึกไม่ถนัดทางศาสตร์นี้ และสามคนที่เหลือรอดอยู่ก็ได้กลายมาเป็นทีมอีนิกม่านั่นเอง ในตอนนั้น Rejewski อายุ 27 ปี Rozycki อายุ 23 และ Zygalski อายุ 25 ปี
ในปี 1926 โปแลนด์ที่จับตาดูเยอรมันอยู่ พบว่าตัวเองแกะข้อความที่เยอรมันใช้สื่อสารไม่ได้อีกต่อไป จึงรู้ว่าเยอรมันได้ใช้วิธีการเข้ารหัสข้อมูลแบบใหม่แล้ว สปายโปแลนด์สืบพบเกี่ยวกับอีนิกม่า อีกทั้งได้ครอบครองเครื่องอีนิกม่าที่เคยวางขายตามท้องตลาดด้วย Rejewski หนึ่งในผู้แกะโค้ดอีนิกม่าเขียนในบทความของเขาฉบับหนึ่ง (Wiadomosci matematyczne 23) ว่าในราวปี 1927 ศุลกากรวอร์ซอได้รับพัสดุจากเยอรมัน ระบุว่าเป็นอุปกรณ์วิทยุ แต่บริษัทจัดส่งยื่นคำขาดอย่างเอาเป็นเอาตายให้คืนพัสดุนี้กลับเยอรมันก่อนจะถูกเปิดตรวจ โดยบอกว่าพัสดุนี้จัดส่งพลาด อาการร้อนรนนี้ทำให้ศุลกากรโปแลนด์เอะใจและส่งพัสดุนี้ไปให้หน่วยแกะรหัสข้อมูล ซึ่งเป็นผู้ดูแลอุปกรณ์วิทยุอยู่ในตอนนั้น โปแลนด์พบว่าสิ่งที่อยู่ในกล่องคืออีนิกม่า เหตุการณ์นั้นเกิดขึ้นในเที่ยงวันเสาร์ และโปแลนด์ก็มีเวลาทั้งสุดสัปดาห์ทำความรู้จักกับอีนิกม่า ก่อนจะบรรจุลงกล่องแล้วจัดส่งคืนเยอรมันอย่างเรียบร้อย
แต่ถึงโปแลนด์จะมีอีนิกม่ารุ่นที่เคยวางขาย แต่การแกะรหัสก็ยังเป็นไปไม่ได้ เพราะกองทัพเยอรมันได้ดัดแปลงอีนิกม่าที่ใช้ในทหารให้ต่างจากรุ่นที่วางขายในท้องตลาด โปแลนด์อาจจะทำอะไรไม่ได้ไปมากกว่านี้ ถ้าเยอรมันจะไม่มีหนอนบ่อนไส้ Hans Thilo-Schmidt (*ชื่อจริงนี้ปรากฏต่าง ๆ กันไป ข้อมูลที่ทราบแน่ชัดประการเดียวคือเขาเป็นที่รู้จักกันทั่วไปในนามแฝง Asche) เป็นชาวเยอรมันที่มาเสนอขายข้อมูลอีนิกม่าให้ฝรั่งเศส บางข้อมูลบอกว่าเขาเกิดตกอับ และได้ไปของานทำจากพี่ชายที่เป็นนายทหารมียศในศูนย์ข้อมูลของเยอรมัน งานที่ได้รับมอบหมายคือการทำลายโค้ดอีนิกม่าที่ไม่ใช้แล้ว ฮานส์มีข้อมูลทั้งข้อความก่อนเข้ารหัส และข้อความที่เข้ารหัสแล้ว ซึ่งเขานำไปขายให้หน่วยสปายฝรั่งเศส แถมด้วยการเขียนคู่มืออธิบายการติดตั้งใช้งานเครื่องให้พร้อมสรรพ แต่ฮานส์ก็ไม่ได้บอกว่าอีนิกม่ามีวงจรการทำงานภายในอย่างไร นายฮานส์นั้นทำงานได้ดีมาก จนกระทั่งฝรั่งเศสเชิญให้ไปปารีสครั้งหนึ่งในปี 1938 เพื่อให้รางวัลเป็นการท่องราตรี ในฐานะที่ "ปฏิบัติหน้าที่และจงรักภักดีเป็นเลิศ"
ทีมโปแลนด์พิจารณาข้อมูล และพบด้วยว่าล้อหมุนทั้งสามต้องหมุนด้วยความเร็วไม่เท่ากัน เพราะจากข้อความส่วนใหญ่นั้น ล้อชั่วโมงและนาทีจะไม่หมุน (ไม่มีใครเรียกล้ออีนิกม่าว่าชั่วโมงและนาทีนอกจากผู้เขียน จริง ๆ จะกันเรียกว่าล้อซ้ายกลางขวา หรือ LMN หรือล้อหมุนช้า ล้อหมุนเร็ว) Rejewski ใช้หลักการสลับลำดับของข้อมูล (Permutation) มาสร้างสมการ ค่อย ๆ แกะรอยการทำงานของลูกล้อ จนรู้ว่าลูกล้อทำงานอย่างไร โปแลนด์พยายามสร้างอีนิกม่าจำลองขึ้นมา แต่ปัญหาหนักหน่วงที่ต้องเดาใจเยอรมัน ก็คือการเดินสายไฟจากปุ่มคีย์บอร์ดแต่ละปุ่มไปยังตัวอักษรแต่ละตัวที่ลูกล้อ เยอรมันอาจจะลากสายจากปุ่ม A ไปที่ลูกล้อซี่ X ก็ได้ และความเป็นไปได้ที่จะลากสายแบบต่าง ๆ กันนี้ เป็นไปได้แปดล้านล้านแบบ [26!/ (213*13!)] ในเครื่องอีนิกม่าที่วางขายในท้องตลาดที่โปแลนด์มีอยู่นั้น ลากสายจากปุ่มคีย์บอร์ด Q ไป A และ W ไป B คือเรียงลำดับตามแป้นของคีย์บอร์ด และไม่ว่าโปแลนด์จะพยายามเท่าไหร่ ก็ไม่ได้ผลออกมาเลย
ทีมโปแลนด์เกือบจะสิ้นหวังอยู่แล้ว กับการต้องเดาใจหนึ่งในล้านล้านนี้ แต่ Rejewski ก็ลองนึกว่า สมมติว่าเยอรมันจะลากสายแบบตรงไปตรงมา จาก A ไป A และ B ไป B ล่ะ และพอลองเข้าก็ได้ผลจริงๆ เมื่อใส่ HELLO และตั้งค่าลูกล้อเป็น ABN ข้อความที่ได้ก็จะเป็น AXEBY ไม่น่าเชื่อเลยว่าในบรรดาทางเลือกนับล้านล้านแบบ เยอรมันจะเลือกวิธีนี้ ที่จริงแล้ว ตอนที่อังกฤษเจอทีมโปแลนด์เป็นครั้งแรก คำถามแรกที่อังกฤษเอ่ยปากถามคือ เยอรมันลากสายนี้อย่างไร และก็ได้รับคำตอบอันสร้างความประหลาดใจยิ่งยวดนี้ อย่างไรก็ตาม ตอนนี้โปแลนด์ก็มีอีนิกม่าจำลองอยู่กับตัวแล้ว
แต่ถึงจะสร้างอีนิกม่าเทียมได้สำเร็จ การแกะโค้ดก็ยังเป็นเรื่องยาก เราต้องไม่ลืมว่าอีนิกม่าจะตั้งค่าเริ่มต้นของลูกล้อใหม่ทุกวัน แถมลูกล้อสามตัวนี้ยังจับมาสลับว่าล้อไหนจะเร็วจะช้าได้ตามใจอีกด้วย หากจะให้เดาค่าเริ่มต้นลูกล้อให้ถูก ก็ต้องเดาให้ถูกหนึ่งในหนึ่งแสนห้าพันกว่าวิธี (26x26x26x3!) และจะต้องเดากันทุกวัน การเดาหนึ่งจากแสนฟังดูง่ายดายในยุคคอมพิวเตอร์ แต่ในสมัยนั้น การลองหนึ่งทางเลือกหมายถึงการปรับลูกล้อด้วยมือ และการตั้งลำดับความเร็วของลูกล้อ ก็ต้องลากเดินสายกันใหม่จริง ๆ ดังนั้นการแกะโค้ดด้วยการเดาสุ่มจึงไม่เป็นผล หากจะต้องเดา ก็ขอให้เป็นการเดาแค่หนึ่งในร้อยแทนที่จะเป็นหนึ่งในแสน โปแลนด์จะต้องรู้ให้ได้ว่าค่าเริ่มต้นของลูกล้อ และลำดับการใช้ลูกล้อเป็นอย่างไร และผู้ที่ช่วยใบ้คำตอบนี้แก่โปแลนด์ก็ไม่ใช่ใครเลย นอกจากเยอรมัน
ส่วนทางสหราชอาณาจักรได้มีการก่อตั้งหน่วยงานที่ Bletchley Park เพื่องานถอดรหัสโดยเฉพาะ ซึ่ง Bletchley Park นี้เป็น Mansion สไตล์วิคทอเรีย อยู่ทางเหนือของ ลอนดอน ประเทศอังกฤษ ประมาณ 50 ไมล์ ซึ่งเป็นแหล่งของบุคคลที่มีความสามรถในการถอดรหัสนับเป็นหมื่น ๆ คน ประกอบด้วย เล่นเกมอักษรไขว้ แชมป์หมากรุก นักคณิตศาสตร์ นักเรียน นักอักขระอียิปต์ และใครก็ตามที่มีวี่แววว่าจะแกะรหัสได้ ทุกคนทำงานด้วยความสนุกสนาน ด้วยความท้าทายกับรหัสที่ต้องการจะถอด ยิ่งเป็นความมั่นคงระดับชาติและหมายถึงความเป็นความตายของชีวิตมนุษย์ด้วยแล้ว พวกเขาจะทำงานหามรุ่งหามค่ำกันเลยทีเดียว
อลัน ทัวริ่ง (Alan Turing) นักคณิตศาสตร์ผู้ที่ไขรหัสลับอีนิกม่าได้เป็นผลสำเร็จ เขายังได้รับการยกย่องว่าเป็นบิดาแห่งศาสตร์คอมพิวเตอร์
ขอบคุณภาพจาก http://ichef.bbci.co.uk/wwfeatures/624_351/images/live/p0/0v/2b/p00v2b0b.jpg
ความประสบความสำเร็จของ Bletchley Park นั้นได้รับความช่วยเหลือจากหลายทาง หนึ่งในนั้นคือ นักคณิศาสตร์จากมหาวิทยาลัยเคมบริดช์ชื่อ อลัน ทัวริ่ง (Alan Turing) ซึ่งเป็นที่ยอมรับว่าเป็นบิดาของวิทยาการคอมพิวเตอร์ ซึ่งได้สร้างเครื่องมือถอดรหัสชื่อ The bombe (มาจากภาษาอังกฤษว่า Bomb เพราะเป็นเครื่องมือที่เสียงดังมากนั้นเอง) ช่วงแรก ๆ เครื่อง Bombe ทำงานได้ช้ามาก ๆ แต่ด้วยความประมาทของฝ่ายเยอรมันที่โอเปเรเตอร์มักง่ายไม่ยอมเปลี่ยนการตั้งเครื่องทุกวัน ประจวบกับในเดือนพฤษภาคม 1941 ฝ่ายอังกฤษได้จับกุมเรือดำน้ำ U-boat ที่นอกฝั่งกรีนแลนด์ ทางฝ่ายอังกฤษก็ได้เข้าไปค้นและเจอเครื่องอีนิกม่า โมเดลล่าสุดพร้อมกับหนังสือถอดรหัส (Code Book) อีกหลายเล่มด้วย จึงทำให้เครื่องถอดรหัสของฝ่ายสัมพันธมิตรพัฒนาไปมากทีเดียว
โดยเฉพาะช่วงดีเดย์ ซึ่งการสื่อสารของเยอรมันในช่วงนั้น ฝ่ายสัมพันธมิตรก็ได้ถอดรหัสได้แล้ว ซึ่งเครื่องมือถอดรหัสในช่วงดีเดย์นั้นได้สร้างมาจากต้นแบบ Bombe เป็นหนึ่งในเครื่อง Binary Computer เครื่องแรก ๆ ของโลก ซึ่งกินพื้นที่หลาย ๆ ห้องและใช้หลอดสูญญากาศมากกว่า 1500 หลอด เครื่องนี้ชื่อว่า Colossus ซึ่งเริ่มใช้งานเดือนมิถุนายน ปี 1944 ก่อนดีเดย์ไม่กี่วัน
ขอบคุณข้อมูลจาก
- http://topicstock.pantip.com/wahkor/topicstock/2008/11/X7242577/X7242577.html
กลับไปที่เนื้อหา
ข้อบกพร่องของเครื่องอีนิกม่า
แม้ว่าดูเหมือนเครื่องอีนิกม่าจะทำงานบนหลักการที่เฉลียวฉลาดและไร้ที่ติ แต่ก็อย่างที่รู้กันว่าไม่มีอะไรในโลกที่สมบูรณ์แบบ เครื่องอีนิกม่าก็เช่นกัน ในหัวข้อนี้เราจะไปเจาะลึกว่าเครื่องนี้มีข้อบกพร่องอะไร ทำไมสุดท้ายแล้วถึงมีคนล่วงรู้การทำงานและไขรหัสลับของมันได้
กลับไปที่ตัวเครื่องอีนิกม่า สมมติว่าตอนนี้เรากดตัวอักษร K แล้วก็ได้รหัสลับเป็น Q
เครื่องอีนิกม่า (Enigma machine)
ขอบคุณภาพจาก https://www.youtube.com/watch?v=V4V2bpZlqx8
แล้วถ้ายังคงกดปุ่ม K ไปเรื่อย ๆ ปุ่มไฟแสดงตัวอักษรตัวอื่น ๆ ด้านบนก็จะติด แตกต่างกันไปในแต่ละครั้ง เช่น บางครั้งได้ U บางครั้งได้ H บางครั้งได้ J เป็นต้น พูดง่าย ๆ ว่ารหัสลับที่ได้สำหรับ K นั้นออกมาไม่ซ้ำกันเลย
หนทางที่จะเราจะถอดรหัสอีนิกม่าได้ อยู่ตรงที่ว่า หากเรามีรหัสอีนิกม่าอยู่ข้อความหนึ่ง แล้วถ้าพยายามเดาได้ว่าคำหรือวลีนั้นถูกแปลงไปอย่างไรในรหัสอีนิกม่าที่เห็นนั้น ก็จะพอถอดรหัสหรือตีความหมายกลับมาได้
ในช่วงสงครามโลกครั้งที่ 2 ทุก ๆ เช้าเวลา 6.00 น. เยอรมันจะส่งข่าวพยากรณ์อากาศถึงกัน เป็นเช่นนี้ทุก ๆ วันในรูปแบบมาตรฐานที่เหมือนเดิม สมมติว่าเราเลือกคำที่สื่อถึงการพยากรณ์อากาศ เช่นคำว่า weather report ในภาษาอังกฤษ หรือคำว่า wetterbericht ในภาษาเยอรมัน
สมมติว่าเรามีรหัสอีนิกม่าข้อความหนึ่ง
... j x a t q b g g y w c r y b g d t ...
ลองเทียบรหัสนี้กับคำของเราดู
... j x a t q b g g y w c r y b g d t ...
...w e t t e r b e r i c h t ...
จะเห็นได้ว่าที่แถวล่าง ตัว t ตัวที่ 4 ไปตรงกับรหัสด้านบน ซึ่งน่าจะไม่ถูกต้องเพราะว่าไม่มีตัวอักษรตัวใดเข้ารหัสได้ตัวมันเองเลย
ลองขยับมาทางขวาอีกนิด หนนี้จะได้
... j x a t q b g g y w c r y b g d t ...
.....w e t t e r b e r i c h t ...
จะเห็นได้ว่าที่แถวล่าง ตัว t ตัวที่ 3 ยังตรงกับรหัสด้านบน
ลองขยับมาทางขวาอีกนิดอีก จะได้
... j x a t q b g g y w c r y b g d t ...
.........w e t t e r b e r i c h t ...
จะเห็นได้ว่าเมื่อเทียบดูแถวบนกับแถวล่างแล้ว ไม่มีคู่ตัวอักษรตัวใดที่เหมือนกันเลย
แล้วถ้าลองขยับไปอีกนิดล่ะ
... j x a t q b g g y w c r y b g d t ...
...........w e t t e r b e r i c h t ...
จากแถวล่าง จะเห็นว่าตัว r ตัวที่สอง เหมือนกับรหัสตำแหน่งตรงกันในบรรทัดบน แสดงว่าไม่น่าจะถูกต้อง
ด้วยการเดาแบบนี้ ทำให้เราสามารถเดาคร่าว ๆ ได้ว่าจะถอดรหัสอีนิกม่าได้อย่างไร สมมติว่าเราคิดถึงคำที่พวกทหารเยอรมันน่าจะส่งถึงกันในช่วงสงคราม เช่นคำว่า Hitler (ฮิตเลอร์ ชื่อผู้นำ) ในท้ายของประโยค ดังนั้นน่าจะเป็นไปได้ว่าเราจะไม่เห็นตัวอักษรตัวใดเลยที่ตรงกับคำว่า Hitler และด้วยแนวคิดนี้เองทำให้นักคณิตศาสตร์ชาวอังกฤษท่านหนึ่งนามว่า อลัน ทัวริ่ง (Alan Turing) รู้ว่าจะไขรหัสลับอีนิกม่าโดยอาศัยประโยชน์จากการพบข้อบกพร่องนี้ได้อย่างไร
ดังนั้นเขาจึงได้สร้างเครื่องจักรขนาดใหญ่มาก ชื่อว่าเครื่องบอมบ์ (Bombe Machine) ตัวเครื่องที่ออกแบบครั้งแรกถูกเปิดเผยในปี 1939 ต่อมามีนักถอดรหัสอีกท่านหนึ่งนามว่ากอร์ดอน เวลช์แมน (Gordon Welchman) ได้ช่วยปรับปรุงมันในปี 1940 เครื่องบอมบ์นี้เป็นเครื่องจักรขนาดใหญ่มาก ทำงานเสียงดัง แต่ความเจ๋งของเจ้าเครื่องนี้คือจะช่วยให้เราถอดรหัสได้ในเวลาที่น้อยกว่า 20 นาที ซึ่งในขณะนั้น ทุก ๆ เช้าจะต้องถอดข่าวสารพยากรณ์อากาศที่ได้มาจากฝั่งเยอรมัน ซึ่งทุกวันรูปแบบรหัสก็จะต่างกันไป และรูปแบบนี้ก็จะถูกเปลี่ยนในก่อนเที่ยงคืน ดังนั้นจึงจำเป็นจะต้องสร้างเครื่องจักรที่ถอดรหัสได้ในระยะเวลาไม่นานนัก และต่อไปนี้คือหน้าตาของตารางการเข้ารหัสตัวอักษรประจำวัน
ขอบคุณภาพจาก http://jproc.ca/crypto/enigma_keylist_3rotor_b.jpg
เครื่องบอมบ์ (Bombe Maching) พัฒนาโดยอลัน ทัวริ่งและ กอร์ดอน เวลช์แมน
ขอบคุณภาพจาก http://www.computermuseum.li/Testpage/Bombe-1943.jpg
กลับไปที่เนื้อหา
การทำงานของเครื่องอีนิกม่า และเครื่องบอมบ์
แม้ว่าตอนแรกที่พวกเยอรมันใช้เครื่องอีนิกม่า กลไกความฉลาดทุกอย่างของมันถูกปิดไว้ลับสุดยอด น้อยคนนักจะเข้าใจกลไกที่แท้จริงของเครื่องอีนิกม่า แม้แต่ทหารก็เป็นเพียงผู้ใช้งาน แต่จนถึงตอนนี้ความลับการทำงานของเครื่องอีนิกม่าก็ไม่มีอีกแล้ว หัวข้อนี้จะเฉลยให้น้อง ๆ ทราบว่าเจ้าครื่องนี้จริง ๆ แล้วทำงานได้อย่างไร
ที่ด้านหน้าสุดของเครื่องอีนิกม่าจะมีสิ่งที่เรียกว่าแผงปลั๊ก (Plug board) ซึ่งเชื่อมต่อตัวอักษรเป็นคู่ๆ ทั้งหมด 10 เส้น จะได้คู่ตัวอักษร 10 คู่ เมื่อกดแป้นตัวอักษรตัวหนึ่ง สัญญาณจะผ่านแผงปลั๊ก จากนั้นไปยังจานหมุนอันแรก (ขวาสุด) แล้วไปจานหมุนที่สอง (อันกลาง) ผ่านไปยังจานหมุนอันที่สาม (ซ้ายสุด) จากนั้นวนกลับเข้ามายังเครื่องอีกครั้งแบบย้อนกลับ ผ่านจานหมุนอันที่สาม อันที่สอง และสุดท้ายอันที่หนึ่งตามลำดับ สุดท้ายสัญญาณจะกลับออกมาที่แผงปลั๊กอีกครั้ง จากนั้นปุ่มไฟของตัวอักษรหนึ่งก็จะสว่างขึ้นมา
ขอบคุณภาพจาก http://www.rutherfordjournal.org/images/030108-11.jpg
อธิบายให้เข้าใจง่ายขึ้นด้วยแผนภาพข้างล่างนี้
ทีนี้เราลองมาเดาว่าตัวอักษรอะไรจะถูกเข้าคู่กัน สมมติเดาว่า t กับ a เชื่อมกันอยู่
ถ้าเป็นแบบนี้จริง เมื่อกด t สัญญาณผ่านแผงปลั๊กจะได้ a และเมื่อสัญญาณผ่านเข้าจานหมุนทั้งสามอันแล้วได้ตัว p จากนั้นสัญญาณตัว p ผ่านเข้าแผงปลั๊กแล้วสุดท้ายได้เป็นตัว e ออกมา แบบนี้อาจจะสรุปได้ว่าคู่ตัวอักษรต่อไปคือ p ซึ่งเชื่อมต่อกับ e ถ้าเป็นแบบนี้จริงก็เจ๋งเลย เริ่มเดาการทำงานของเครื่องอีนิกม่าได้แล้ว
ทีนี้จะใช้วิธีเดียวกันนี้ในการเดาการตั้งค่าของแผงปลั๊กอีกซัก 2-3 แบบ
สรุปได้ว่า k เชื่อมต่อกับ q
สรุปได้ว่า x เชื่อมต่อกับ b
สรุปได้ว่า t เชื่อมต่อกับ g
แต่! แต่ถึงตอนนี้มีความขัดแย้งเกิดขึ้น เพราะตอนแรกเราเดาว่า t ต่อเชื่อมกับ a แต่ตอนนี้เราได้ t ต่อเชื่อมกับ g ซึ่ง t ไม่สามารถต่อเชื่อมกับตัวอักษรพร้อมๆกันได้สองตัว นั่นแปลว่าการเดาว่า a เชื่อมต่อกับ t นั้นผิด
สมมติว่าลองเดาต่อ เป็น tb, tc, td, ... เรื่อยไปจนครบทุกกรณีที่จะเป็นไปได้
ถ้าสมมติว่าไม่มีการเชื่อมต่อไหนเลยที่เป็นไปได้ (ผิดทุกกรณีที่เชื่อมต่อ) แสดงว่าตำแหน่งของจานหมุนที่ตั้งไว้นั้นผิด สิ่งที่ต้องทำก็คือค่อย ๆ เลื่อนจานหมุนไปทีละคลิ้กแล้วทดสอบการเข้าคู่กัน จากนั้นถ้ายังไม่ถูกก็หมุนคลิ้กอีกที ค่อยๆทำแบบนี้ไปเรื่อยๆ จะเห็นได้ว่าเป็นอะไรที่เสียเวลามาก
อลัน ทัวริ่งเกิดแนวคิดขึ้นมาสองแบบที่จะทำให้งานพวกนี้ทำได้เสร็จเร็วขึ้น อย่างแรกซึ่งฉลาดเอามาก ๆ ก็คือ เขาสังเกตเห็นว่า เมื่อเจอสิ่งหนึ่งที่ผิดไป อย่าง ta กับ tg แสดงว่าการตั้งข้อสรุปอื่น ๆ นั้นล้วนผิดหมด และไม่จำเป็นต้องเช็คต่อแล้ว ยังไงก็ถือว่าผิดและไม่ถูกยอมรับ แล้วก็ไม่จำเป็นต้องเช็คกรณีอื่น ๆ อีก และนี่ก็เพิ่มความเร็วให้กับการทำงานขึ้นมาก อีกวิธีหนึ่งที่จะเพิ่มความเร็วการทำงาน ก็คือ ทำให้มันทำงานอย่างรวดเร็วขึ้นทันทีด้วยการใช้วงจรไฟฟ้า และนั่นก็คือสิ่งที่อยู่ในเครืองบอมบ์ (Bombe machine)
เครื่องบอมบ์ทำงานในลักษณะเดียวกับที่เราพยายามทำไปแล้วตอนต้น ด้วยวงจรไฟฟ้าทำให้สามารถเช็คคู่ตัวอักษรที่ผิดได้รวดเร็วมาก แล้วพอพบว่าผิด ก็หมุนจานหมุนไปหนึ่งคลิ้ก แล้วตรวจสอบใหม่ ทำแบบนี้ไปเรื่อยๆ ด้วยความเร็วที่เร็วมากเมื่อเทียบกับการทำโดยมนุษย์ ด้วยเครื่องบอมบ์ทำให้ทุกกรณี ทุกตำแหน่งของจานหมุนนั้นสามารถถูกตรวจสอบได้อย่างครบถ้วนอย่างรวดเร็ว คือประมาณ 20 นาทีเท่านั้น
หลักการทำงานที่น่าสังเกตของเครื่องบอมบ์ก็คือ มันถูกสร้างขึ้นในลักษณะย้อนกลับ คือตรวจสอบหาความไม่ถูกต้อง แล้วตัดกรณีที่ผิดนั้นทิ้งไป สิ่งที่เหลือก็คือ สิ่งที่ไม่ผิด
การตั้งชื่อเครื่องบอมบ์นั้น เป็นการให้เกียรติแก่เครื่องถอดรหัสของโปแลนด์ซึ่งเรียกว่า บอมบ์เบอร์ เครื่องบอมบ์เบอร์มีขนาดไม่ใหญ่ ทำงานไม่ดังเท่า และมีหลักการทำงานแตกต่างไปจากเครื่องบอมบ์อย่างสิ้นเชิง ซึ่งจากข้อบกพร่องของเครื่องอีนิกม่าของพวกเยอรมันนี้ เครืองบอมบ์เบอร์สามารถถอดรหัสอีนิกม่าจากกองทัพภาคพื้นดินและกองทัพอากาศของเยอรมันได้ แต่ไม่สามารถถอดรหัสของกองทัพเรือได้ สิ่งที่อลัน ทัวริ่งต้องทำก็คือ ต้องหาวิธีถอดรหัสอีนิกม่าทั้งที่ส่งมาจากทุกกองทัพได้ และจะต้องทนทานพอ ซึ่งถ้าพวกเยอรมันเปลี่ยนกระบวนการเข้ารหัสไป เครื่องจักรที่จะสร้างนี้ก็ยังต้องสามารถทำงานได้ สิ่งที่ทำให้รหัสอีนิกม่าในกองทัพเรือนั้นแตกต่างไปก็คือ ตำแหน่งเริ่มต้นของจานหมุน ซึ่งปกติจะส่งก่อนที่จะส่งข้อความลับ แต่กองทัพเรือส่งโค้ดแบบอื่นที่แตกต่างออกไปอย่างสิ้นเชิง ซึ่งก็ต้องหาให้ได้ว่าการแจ้งตำแหน่งของจานนั้นทำได้อย่างไรด้วย ถึงจะเริ่มถอดรหัสอีนิกม่าของกองทัพเรือได้
กลับไปที่เนื้อหา
-
7347 อีนิกม่า (Enigma) /lesson-mathematics/item/7347-enigmaเพิ่มในรายการโปรด