ความหมายและความสำคัญของการเข้ารหัสลับ
การเข้ารหัสลับคือ กระบวนการเปลี่ยนข้อความจากข้อความทั่วไปให้เป็นรหัสลับ เพื่อให้เกิดการซ่อนข้อความที่แท้จริงจากผู้ที่ไม่มีสิทธิ์ที่จะอ่านข้อความนั้นๆ และในขณะเดียวกันก็เพื่อให้ผู้ที่มีสิทธิ์เท่านั้นที่สามารถเข้าใจข้อความที่ถูกเข้ารหัสได้
เมื่อจะกล่าวถึงการเข้ารหัสลับ ก็คงต้องกล่าวถึงที่มาสักนิดหนึ่ง
การเข้ารหัสเนี่ย มีที่มาที่บันทึกไว้อย่างเก่าแก่ที่สุดก็ตั้งแต่สมัยกษัตริย์ จูเลียต ซีซ่าร์ แห่งอาณาจักรโรมัน โดยในสมัยนั้นจะเป็นการเข้ารหัสแบบง่ายๆ ไม่ซับซ้อน
เช่น การเข้ารหัสคำว่า How are you ? จะใช้การเข้ารหัสง่ายๆ คือ การเลื่อนลำดับตัวอักษรเพิ่มไป 2 ตำแหน่ง ดังนี้
ตัวอักษรสองลำดับ ถัดไปของ H คือ J
ตัวอักษรสองลำดับ ถัดไปของ O คือ Q
ตัวอักษรสองลำดับ ถัดไปของ Wคือ Y
ตัวอักษรสองลำดับ ถัดไปของ A คือ C
ตัวอักษรสองลำดับ ถัดไปของ R คือ T
ตัวอักษรสองลำดับ ถัดไปของ E คือ G
ตัวอักษรสองลำดับ ถัดไปของ Y คือ A
ตัวอักษรสองลำดับ ถัดไปของ O คือ Q
ตัวอักษรสองลำดับ ถัดไปของ U คือ Wดังนั้น ข้อความ How are you ที่ถูกเข้ารหัสก็คือ JQY CTG AQW
ซึ่งหากเราไม่รู้วิธีการถอดรหัสก็คงอ่านกันไม่รู้เรื่องเนอะ แต่ผู้ที่รู้วิธีการถอดรหัส (คนที่มี่สิทธิ์เข้าใจข้อความ) ก็จะนำข้อความใหม่ไปนับถอยหลังลงทีละ 2 ตัว ในแต่ละตัวอักษร ก็จะได้ข้อความกลับมาอ่านแล้วเข้าใจว่า How are you นั่นเอง
วิธีการนี้ได้ถูกนำไปใช้ในการสงคราม เช่น จะส่งกำลังบุกทางใดก่อน จะตั้งรับอย่างไร จะโจมตีลวงอย่างไร ซึ่งหากฝั่งตรงข้ามไม่เข้าใจวิธีการถอดรหัสก็ย่อมแพ้ได้โดยง่าย เพราะฝ่ายตรงข้ามส่งข้อความกันอย่างเปิดเผย ในขณะที่ตนก็ได้เห็นข้อความแต่อ่านแล้วไม่เข้าใจความหมาย ส่งผลให้ไม่รู้ว่าจะรับมือข้าศึกอย่างไรดี
(ไม่ว่าจะเป็นการส่งข้อความในอดีตหรือปัจจุบัน จะด้วยม้า หรือโทรศัพท์ หรือข้อความทางแชทก็มีโอกาสถูกดักฟัง/อ่านได้ไม่ยากนัก การส่งข้อความลับจึงจำเป็นต้องมีการเข้ารหัส)
ถัดจากยุคทองของโรมันแล้วก็ยังมีการนำวิทยาการเข้ารหัสมาใช้ในสงครามอื่นๆ อีกมากมาย แต่ยุคที่มีการยกระดับวิทยาการการเข้ารหัสก้าวกระโดดที่สุดคือนับตั้งแต่ปลายสมัยสงครามโลกครั้งที่ 1 เป็นต้นมา ที่การเข้ารหัสได้มีการใช้วิธีคำนวณทางคณิตศาสตร์อันแสนซับซ้อนเข้ามาใช้…
ปลายสมัยสงครามโลกครั้งที่ 1 เครื่อง Enigma ได้ถูกคิดค้นขึ้นโดย Arthur Scherbius (อาร์เธอร์ แชร์บิอุส) ซึ่ง Enigma นี้มีความสามารถในการเข้ารหัส คือ เมื่อพิมพ์ข้อความใดๆ เข้าไป ข้อความนั้นจะถูกแปลงเป็นคำอื่นๆ และถูกส่งออกไปยังเครื่อง Enigma ปลายทาง
(ซึ่งขณะที่ข้อความถูกส่งออกไปตามสื่อ เช่น สายโทรศัพท์ ข้อความก็สามารถถูกดักจับได้นะ แต่ผู้ดักจับข้อความจะไม่สามารถตีความข้อความที่ถูกเข้ารหัสได้ง่ายๆ เลย)
เมื่อเครื่องปลายทาง (ผู้รับสาร) ที่ได้ตั้งค่าการถอดรหัสที่ตรงกับการเข้ารหัสไว้ในเครื่องต้นทาง (ผู้ส่งสาร) จะทำให้ผู้รับสารสามารถอ่านข้อความที่ถูกแปลงได้ในที่สุด (ผู้รับสารเข้าใจสิ่งที่ผู้ส่งสารต้องการสื่อ ดังนั้นถือว่าการสื่อสารประสบความสำเร็จ) แต่ทว่า Enigma กลับไม่ค่อยได้รับความนิยมในหมู่คนทั่วไป จึงได้แต่ใช้งานกันในหน่วยงานทหารเท่านั้น
มาจนถึงสมัยสงครามโลกครั้งที่ 2 นาซีเยอรมันซึ่งนำโดย Adolf Hitler ได้มีการนำ Enigma มาใช้ส่งรหัสแผนการรบข้ามจังหวัด ข้ามประเทศ ข้ามทวีป จนฝ่ายสัมพันธมิตรเพลี่ยงพล้ำ พ่ายศึกไปอย่างมากมาย เรียกได้ว่าแทบจะประกาศยอมแพ้สงครามอยู่แล้วเชียว
จนกระทั่ง วินสตัน เชอร์ชิล (นายกฯ ของอังกฤษในสมัยนั้น) ได้เรียกรวมทีมหัวกะทิ ที่นำทีมโดย อลัน ทูริง ผู้เป็นนักคณิตศาสตร์สุดปราดเปรื่อง เข้ามาช่วยในแผนปฏิบัติการถอดรหัสลับ Enigma ให้จงได้ในเวลาอันจำกัด (ไม่งั้นอังกฤษแพ้สงคราม และต้องเสียทรัพย์เพื่อเป็นสินสงครามเป็นอันมหาศาลเป็นแน่แท้)
และในที่สุด อลัน ทูริง และทีมก็สามารถหาวิธีถอดรหัส Enigma และทำให้อังกฤษเข้าใจแผนการที่ฝ่ายนาซีเยอรมันทั้งหมด และโจมตีกลับจนเยอรมันเป็นฝ่ายแพ้สงครามไปจนได้
หลังจากนั้น วิธีการถอดรหัสของเขายังได้นำมาใช้เป็นต้นแบบของคอมพิวเตอร์เครื่องแรกของโลก และอลัน ทูริง ยังได้รับการยกย่องอย่างมากมายว่าเป็นวีรบุรุษสงครามโลก รวมถึงบิดาแห่งคอมพิวเตอร์อีกต่างหาก
(ได้ค้นข้อมูลของ ทูริง แล้วทำให้เกิดกิเลสอยากหาหนังอัตชีวประวัติของเขามาดูสักหน่อย ผมคงต้องจัดเวลาให้ทวด ทูริง แล้วหละ)
เมื่อได้ทราบประวัติความเป็นมากันไปแล้ว เรามาดูถึงวิธีการเข้ารหัสลับกันบ้าง
ว่าด้วยเรื่องของขั้นตอนในการเข้ารหัส
จากเนื้อหาในหนังสือของรายวิชา 99312 คณิตศาสตร์สำหรับเทคโนโลยีสารสนเทศและการสื่อสาร ของ มสธ กล่าวถึงเนื้อหาเกี่ยวกับการเข้ารหัสลับไว้ดังนี้
การเข้ารหัสลับ เป็นการประยกต์ใช้ทฤษฎีจำนวน ทั้งจำนวนเฉพาะ การมอดูโล หรือการสมภาคของมอดูโล มาประยุกต์ใช้ในงานการรักษาความปลอดภัยของข้อมูล เช่น กระบวนการเข้ารหัสลับแบบเชิงเส้น และการเข้ารหัสแบบ RSA
ซึ่งเนื้อหาในบทความนี้จะขอกล่าวถึงวิธีการเข้ารหัสแบบเชิงเส้นเท่านั้นนะครับ ส่วนใครสนใจ RSA ให้ไปหาอ่านเอาเอง อิอิ
การเข้ารหัสแบบเชิงเส้น
เป็นขั้นตอนในการเข้ารหัสลับโดยใช้วิธีการแบบเชิงเส้น เพื่อให้เกิดการซ่อนข้อความที่แท้จริงจากผู้ที่ไม่มีสิทธิ์ที่จะอ่านข้อความนั้นๆ และให้ผู้ที่มีสิทธิ์เท่านั้นที่สามารถเข้าใจข้อความที่ถูกเข้ารหัสได้ได้
ซึ่งวิธีการเข้ารหัสแบบเชิงเส้นประยุกต์มาจากทฤษฎีที่มีนิยามต่อไปนี้
มอดูโลผกผัน เมื่อ n เป็นจำนวนเต็มใดๆ ที่ n > 1, จำนวนจริง a จะมีค่าเท่ากับตัวผกผันของ a modulo n มีตัวผกผันก็ต่อเมื่อ gcd(a, n) = 1 (อ่านว่า ค่าหารร่วมมากของ a และ n เท่ากับ 1)
ซึ่งผมจะไม่ขอลงลึกในเรื่องของวิธีทำมอดูโลผกผัน แต่จะเน้นแต่วิธีการเข้ารหัสเท่านั้นครับ (จริงๆ แล้วผมก็ยังไม่เข้าใจเรื่องมอดูโลผกผันนะ ฮ่าๆ)
โดยมีการประยุกต์ใช้จากวิธีการเชิงเส้น ดังเช่น
สมมติว่า n มีค่าเท่ากับ 27 (จำนวนของตัวอักษรในภาษาอังกฤษบวกหนึ่ง) ซึ่งสามารถกำหนด x เป็นตัวเลขได้ตั้งแต่ 0 ถึง 26 โดยให้แทนตำแหน่งของตัวอักษรของตัวอักษรภาษาอังกฤษ (ตำแหน่งที่ 0 คือตำแหน่งว่างหรือ space) จะได้ตามตารางนี้ว่า
และกำหนดให้ค่า y เป็นตัวเลขที่แสดงลำดับของตัวอักษรใหม่ที่เกิดจากสมการ
y = (ax + b) mod n
ตัวอย่าง 1
กำหนดให้ n = 27, a = 4 และ b = 2 จงเข้ารหัสข้อความ STOU จากสมการ
y = (ax + b) mod n
วิธีการเข้ารหัสแบบเชิงเส้น
ข้อความ STOU เมื่อแยกตัวอักษรแล้วจะพบว่าอักษร S, T, O, U มีค่าตัวเลขแสดงลำดับดังต่อไปนี้ คือ 19, 20, 15 และ 21 ดังแสดงในตารางข้างล่าง
เมื่อแทนในสมการ y = (ax + b) mod n จะได้ว่า
พิจารณาอักษร S = ((4 * 19) + 2) mod 27 = 78 mod 27 = 24
พิจารณาอักษร T= ((4 * 20) + 2) mod 27 = 82 mod 27 = 1
พิจารณาอักษร O= ((4 * 15) + 2) mod 27 = 62 mod 27 = 8
พิจารณาอักษร U= ((4 * 21) + 2) mod 27 = 84 mod 27 = 5
mod หรือ modulo คือการหารเอาเศษ โดยไม่สนใจผลหาร
(เช่น 8 mod 3 = 2 หรือ 4 mod 3 = 1 เป็นต้น)
(8 ÷ 3 ได้ 6 เศษ 2 ดังนั้น คำตอบของ 8 mod 3 คือ 2)
(4 ÷ 3 ได้ 1 เศษ 1 ดังนั้น คำตอบของ 4 mod 3 คือ 1)
เมื่อนำผลลัพธ์จากการคำนวณโดยแทนค่าลงในสมการมาหาตัวอักษรประจำลำดับ จะได้ช้อความที่เข้ารหัสเป็นดังนี้
24 = X
1 = A
8 = H
5 = E
ดังนั้น… เมื่อเข้ารหัสข้อความ STOU จะได้ข้อความใหม่เป็น XAHE ครับ
แต่เมื่อมีการเข้ารหัสแล้ว ผู้รับข้อความ XAHE จะอ่านและเข้าใจความหมายที่ผู้ส่งข้อความ STOU ต้องการจะสื่อได้อย่างไร วิธีการที่จะช่วยให้อ่านข้อความได้ก็คือการถอดรหัสนั่นเอง
การถอดรหัสลับ
เป็นการถอดรหัสลับที่ถูกเข้ารหัสด้วยวิธีการแบบเชิงเส้น เพื่อให้สามารถอ่านข้อความที่ผู้ส่งข้อความซึ่งถูกเข้ารหัสได้อย่างถูกต้อง ตรงตามความหมายที่เขาต้องการสื่อ
เมื่อ a, b เป็นจำนวนเต็มใดๆ และสามารถใช้บทนิยามของมอดูโลผกผัน (นิยามที่กล่าวถึงในตอนต้น) เพื่อสร้างสมการถอดรหัสข้อความที่ถูกเข้ารหัสให้กลับเป็นข้อความเดิมได้ด้วยสมการ x = c(y - b) mod n เมื่อ ac ≡ 1 mod(n)
(อ่านว่า a คูณ c สมภาคกับ 1 mod(n)) แสดงได้โดยตัวอย่างต่อไปนี้…
ตัวอย่าง 2
กำหนดให้ n = 27, a = 4, b = 2 และ c = 7 (ตัวเลขแทนค่า n, a และ b คือค่าเดียวกับค่าในการเข้ารหัส) จงถอดรหัส XAHE จากสมการ x = c(y - b) mod n
วิธีการถอดรหัสลับ
ข้อความ XAHE เมื่อแยกตัวอักษรแล้วจะพบว่าอักษร X, A, H, E มีค่าตัวเลขแสดงลำดับดังต่อไปนี้ คือ 24, 1, 8 และ 5 ดังแสดงในตารางข้างล่าง
พิจารณาอักษร X= 7(24 - 2) mod 27 = 154 mod 27 = 19
พิจารณาอักษร A= 7(1 - 2) mod 27 = -7 mod 27 = 20
พิจารณาอักษร H= 7(8 - 2) mod 27 = 42 mod 27 = 15
พิจารณาอักษร E= 7(5 - 2) mod 27 = 21 mod 27 = 21
เมื่อนำผลลัพธ์จากการคำนวณโดยแทนค่าลงในสมการมาหาตัวอักษรประจำลำดับ จะได้ช้อความที่เข้ารหัสเป็นดังนี้
19 = S
20 = T
15 = O
21 = U
ดังนั้น… เมื่อถอดรหัสข้อความ XAHE จากสมการ x = c(y - b) mod n จะได้ข้อความเดิมเป็น STOU ตรงตามที่ผู้เข้ารหัสหรือผู้ส่งสารต้องการสื่อครับ
ถึงแม้การเข้ารหัสตามวิธีการที่ได้เรียนรู้กันไปเมื่อครู่จะดูซับซ้อนกว่าสมัยโบราณ แต่เอาเข้าจริงแล้ว การเข้ารหัสของสมัยนี้นั้นมีความซับซ้อนกว่าวิธีดังกล่าวมหาศาลนัก เนื่องมาจากที่คอมพิวเตอร์มีความสามารถในการประมวลผลที่สูงส่ง โดยประมวลผลได้นับล้านครั้งต่อวินาที
หากการเข้ารหัสและถอดรหัสสามารถคำนวณได้ง่ายเหมือนในตัวอย่างนี้ รับรองได้ว่าเราคงไม่สามารถเก็บข้อมูลใดๆ ที่เป็นความลับแล้วเชื่อมต่อกับอินเตอร์เน็ตกันได้อีกเลย (เช่นข้อมูลจากฐานข้อมูลขององค์กรยักษ์ใหญ่ ที่ต้องใช้งานพร้อมกันทั่วโลก)
จบไปแล้วครับกับวิธีการเข้ารหัสและถอดรหัสโดยใช้วิธีทางคณิตศาสตร์ มันไม่ยากเลยเนอะถ้าเข้าใจวิธีการคำนวณตามสูตรที่โจทย์ระบุมา ขอให้สนุกกับการเรียนคณิตศาสตร์ครับทุกท่าน
สำหรับครั้งนี้ ผมขอลาไปก่อน ยังมีภารกิจต้องอ่านหนังสือสอบคณิตฯ 99312 ของ มสธ. อีกยาวไกล
(เด็ก ปวส. บริหารฯ ต่อ ป.ตรี สายวิทย์ ถือว่าหักดิบเกิ๊นนน)
(ทีแรกตั้งใจว่าจะเขียนเรื่องนี้แค่ทบทวนและทำความเข้าใจเรื่องการเข้ารหัส/ถอดรหัสเท่านั้นเองนะ เขียนไปเขียนมาก็ยาวซะงั้น)
L ORYH BRX
ให้ถอยหลังกลับไป 3 ตำแหน่งครับ
อ้างอิงเนื้อหาจาก
- หนังสือเรียนวิชา 99312 คณิตศาสตร์สำหรับเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยสุโขทัยธรรมาธิราช เล่ม 1
- “ทีมถอดรหัสอีนิกมา” ชะตากรรมและการอุทิศตนที่ถูกปิดลับ ในสงครามโลกครั้งที่สอง
- ถอดประวัติ..ถอดรหัส “อลัน ทูริง” [The Imitation Game]
- Enigma ทำงานอย่างไร