รหัสลับยุค Classic - รหัสลับยุค Classic นิยาย รหัสลับยุค Classic : Dek-D.com - Writer

    รหัสลับยุค Classic

    ถ้าพูดถึงการถอดรหัสมักได้ยินคำว่า Cryptography ซึ่งมาจากคำว่า Crypto และ Graph ซึ่งคำว่า Crypto แปลว่า การซ่อน ผนวกกับคำว่า Graph แปลว่า การเขียน ซึ่งแปลได้ว่า การเขียนเพื่อซ่อนข้อมูล

    ผู้เข้าชมรวม

    1,464

    ผู้เข้าชมเดือนนี้

    3

    ผู้เข้าชมรวม


    1.46K

    ความคิดเห็น


    3

    คนติดตาม


    3
    เรื่องสั้น
    อัปเดตล่าสุด :  3 ต.ค. 54 / 11:03 น.


    ข้อมูลเบื้องต้น
      

                    ถ้าพูดถึงการถอดรหัสมักได้ยินคำว่า Cryptography ซึ่งมาจากคำว่า Crypto และ Graph

    ซึ่งคำว่า Crypto แปลว่า การซ่อน ผนวกกับคำว่า Graph แปลว่า การเขียน ซึ่งแปลได้ว่า การเขียนเพื่อซ่อนข้อมูล จุดประสงค์ก็เพื่อป้องกันข้อความมิให้ผู้ใดอ่านได้ นอกจากเราและผู้ที่เราต้องการให้อ่านเท่านั้น

    ซึ่งกระบวนการของ Cryptography แบ่งได้ 2 อย่างคือ Data Encryption และ Data Decryption ซึ่งหมายถึงการเข้ารหัส และการถอดรหัสตามลำดับข้อมูล โดยประโยชน์ของ Cryptography นั้นคือการเก็บรักษาความลับของข้อมูล

    ทีนี้มาเข้าเรื่อง  Cryptography นั้นแบ่งออกเป็น 2 ยุค คือ ยุค Classic และยุค Modern หรือแปลเป็นไทยคือ ยุคประวัติศาสตร์ และยุคปัจจุบัน ซึ่งในครั้งนี้ผมจะพูดถึง Cryptography ยุค Classic ซึ่งเข้าใจได้ง่ายกว่ายุค Modern มากโขอยู่ทีเดียว

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

    ค่าเริ่มต้น

    • เลื่อนอัตโนมัติ

      รหัสลับยุค Classic

       

                      ถ้าพูดถึงการถอดรหัสมักได้ยินคำว่า Cryptography ซึ่งมาจากคำว่า Crypto และ Graph

      ซึ่งคำว่า Crypto แปลว่า การซ่อน ผนวกกับคำว่า Graph แปลว่า การเขียน ซึ่งแปลได้ว่า การเขียนเพื่อซ่อนข้อมูล จุดประสงค์ก็เพื่อป้องกันข้อความมิให้ผู้ใดอ่านได้ นอกจากเราและผู้ที่เราต้องการให้อ่านเท่านั้น

      ซึ่งกระบวนการของ Cryptography แบ่งได้ 2 อย่างคือ Data Encryption และ Data Decryption ซึ่งหมายถึงการเข้ารหัส และการถอดรหัสตามลำดับข้อมูล โดยประโยชน์ของ Cryptography นั้นคือการเก็บรักษาความลับของข้อมูล

      ทีนี้มาเข้าเรื่อง  Cryptography นั้นแบ่งออกเป็น 2 ยุค คือ ยุค Classic และยุค Modern หรือแปลเป็นไทยคือ ยุคประวัติศาสตร์ และยุคปัจจุบัน ซึ่งในครั้งนี้ผมจะพูดถึง Cryptography ยุค Classic ซึ่งเข้าใจได้ง่ายกว่ายุค Modern มากโขอยู่ทีเดียว

       

      การเข้ารหัสยุค Classic

      Caesar cipher

                      การเข้ารหัสแบบนี้ คิดค้นโดยกษัตริย์แห่งโรมันพระนามว่า Julius Caesar เพื่อใช้ในการสื่อสารระหว่างการศึกสงคราม เพื่อป้องกันไม่ให้ศัตรูไม่อาจอ่านข้อความลับนั้นได้หากถูกแย่งชิงไปได้ โดยใช้วิธีแทนที่อักษรต้นฉบับด้วยอักษรที่อยู่ถัดไปข้างหน้าสามตัวอักษร อย่างเช่นแทนที่ตัว A ด้วยตัว D และแทนที่ตัว B ด้วยตัว E ดังนั้นจึงเป็นการเลื่อนตัวอักษรโดยจำนวนครั้งของการเลื่อนเท่ากับสาม (Shiftment, n=3)

       

                           การแม็ปอักษรในการเข้ารหัสแบบ Caesar cipher สามารถเขียนได้ดังนี้

      Plain (ข้อความ):    ABCDEFGHIJKLMNOPQRSTUVWXYZ

      Cipher (รหัสที่ได้): DEFGHIJKLMNOPQRSTUVWXYZABC

                          

                           และถ้าลองนำมาเทียบกับ Fox Code ซึ่งเป็นประโยคสั้นๆที่มีอักษรภาษาอังกฤษอันบริสุทธิ์ครบทั้ง 26 ตัว จะได้ดังนี้

      Plain: the quick brown fox jumps over the lazy dog
      Cipher: WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ

                           ต่อมานั้น Augustus ซึ่งเป็น Caesar องค์ที่สองจากทั้งหมด 12 Caesar ซึ่งเป็นหลานของ Julius Caesar ได้เปลี่ยนจากสูตรโดยการแทนที่ตัว A ด้วยตัว C และแทนที่ตัว B ด้วยตัว D ดังนั้นจึงเป็นการเลื่อนตัวอักษรโดยจำนวนครั้งของการเลื่อนเท่ากับสอง (Shiftment, n=2) แต่การเข้ารหัสทั้งสองวิธีนี้สามารถถูกเบรก (Break) ได้โดยง่าย (การเบรก คือการถอดข้อมูลออกมาได้ แม้จะไม่ทราบวิธีการเข้ารหัส)

                           การเบรกการเข้ารหัสข้อมูลแบบ Caesar cipher นั้น ทำได้โดยการทดลองเลื่อนตัวอักษรทุกตัว โดยเลื่อนด้วยจำนวน Shiftment ที่ต่างกัน คือ n = 1, n = 2, n = 3, n = 4, n = 5 ... ไปจนถึง

      n = 26 ซึ่งเป็นจำนวนครั้งในการทดสอบสูงสุดของภาษาอังกฤษ

       

      Monoalphabetic cipher

                     

                      การเข้ารหัสข้อมูลแบบ Monoalphabetic cipher คิดค้นโดยชาวอาหรับ โดยใช้วิธีการแทนที่ตัวอักษร 1 ต่อ 1 อย่างเช่น การเข้ารหัสแบบนี้ในยุคแรกๆ เรียกว่า การเข้าข้อมูลแบบ Atbash โดยการแทนที่ตัว A ด้วยตัว Z แทนที่ตัว B ด้วยตัว Y เป็นต้น

       Plain:   ABCDEFGHIJKLMNOPQRSTUVWXYZ

      Cipher: ZYXWVUTSRQPONMLKJIHGFEDCBA

      และถ้าใช้ Fox Code จะได้ดังนี้

      Plain:    the quick brown fox jumps over the lazy dog

      Cipher: GHV JFRXP YILDM ULC QFNKI REVO GHV OZAB WLT    
                     

                          การเข้าข้อมูลแบบ Atbash นี้จะพบว่ามีรูปแบบที่แน่นอน คือ ใช้ตัวสุดท้ายแทนตัวแรก และใช้ตัวรองสุดท้ายแทนตัวที่สองไปเรื่อยๆตามลำดับ ดังนั้น Monoalphabetic cipher ยุคต่อมาจะใช้การกำหนดคู่ที่ไม่เป็นรูปแบบ เช่น

      Plain:    ABCDEFGHIJKLMNOPQRSTUVWXYZ

      Cipher:  RFIGZVPXASQEHOWKCUYNJTLBMD

                          การเบรก Monoalphabetic cipher นั้นทำได้ยากกว่าการเบรก Caesar cipher เนื่องจากมีคู่ที่เป็นไปได้อยู่ 26 คู่ ยกกำลัง 26 คู่ การเบรกจะต้องสุ่มไปเรื่อยๆจนกว่าจะสำเร็จ ซึ่งใช้จำนวนครั้งในการคำนวณเพียงแค่ 403,291,461,126,605,635,584,000,000 ครั้งเท่านั้นเอง

       

      One-Time Pad

       

                     One-Time Pad นี้คิดค้นโดยชาวอังกฤษที่ชื่อ Gilbert Vemam สงครามโลกครั้งที่ 1 เป็นโดยใช้การแม็ป 1 ตัวอักษรให้สามารถเป็นไปได้หลายตัวอักษร มีวิธีการดังนี้

      ·       กำหนด key เพื่อใช้ในการถอดรหัสอย่างไรก็ได้ แต่ขอให้มีขนาดเท่ากับ Plain Text

      ·       นำลำดับของตัวอักษรตัวนั้นๆ มาบวกกับค่าของลำดับของตัวอักษรที่ใช้เป็น key

      อย่างเช่น H ซึ่งตัวอักษรตัวที่ 7 นี้คือ Plain text และ B ซึ่งตัวอักษรตัวที่ 2 คือ Key ดังนั้นก็ต้องนำ 7+2=9 ตัวอักษรลำดับที่ 9 คือตัว I และตัว I ก็คือ Cipher ที่เราคำนวณได้

      ·       และถ้าบวกกันแล้วได้มากกว่า 26 น้อยก็นำจำนวนนั้นมาลบ 26 อย่างเช่น ถ้า X เป็นข้อความ และ Z คือ Key บวกกันก็จะได้ 50 ซึ่งไม่มีตัวอักษรตัวที่ 50 ดังนั้นจึงต้องนำ 26 ซึ่งป็นจำนวนตัวอักษรทั้งหมดของภาษาอังกฤษมาลบ ก็จะได้ 24 ก็คือตัว X นั้นเอง

      ·       และถ้าหากลบกันแล้ว(การลบใช้ในการถอดรหัส) ได้น้อยกว่า 1 ก็ให้นำ 26 มาบวก

      ตัวอย่างการเข้ารหัสโดยวิธี One-Time Pad

       

       
       

          7 (H)          4 (E)          11 (L)         11 (L)         14 (O) ข้อความ (Plain Text)

      + 20 (T)         7 (H)           1 (A)          9 (I)           12 (L) Key

      = 27             11                12                20              26       ข้อความ+Key

      =   1 (A)      11 (K)          12 (L)         20 (T)         26 (Z) Cipher Text

       

       

       


      สรุปได้ดังนี้
      Plain Text   :  H  E  L  L  O

      Key             :  T  H  A  I   L

      Cipher Text:  A  K  L  T  Z

       

      การถอดรหัส

         1 (A)      11 (K)          12 (L)         20 (T)         26 (Z) Cipher Text

      - 20 (T)       7 (H)           1 (A)          9 (I)           12 (L) Key

      = -19          4                  11              11               14       Cipher Text - Key

      =   7 (H)     4 (E)           11 (L)        11 (L)         14 (O)  Plain Text

       

                          แต่การเข้ารหัสแบบนี้มีข้อเสียอยู่อย่างคือการ ที่ Key ที่มีขนาดเท่ากับข้อความทำให้ส่งข้อความยาวๆได้ยากมาก และก็เวลาเราจะส่งข้อความไปก็ต้องส่งไปพร้อมกับ Key ซึ่งมีความเสี่ยงต่อการถูกขโมยมาก

       

      Playfair cipher

       

                          Playfair cipher ถูกคิดค้นโดย Sir Charles Wheatstone และถูกใช่ในกองกำลังทางประเทศสหราชอาณาจักรในสงครามโลกครั้งที่ 1 มีวิธีการดังนี้

      1.             สร้างตาราง Key ขนาด 5 X 5 = 25 แบบสุ่มโดยตัด Q ออก

      ดังตัวอย่าง(Key ไม่จำเป็นต้องเหมือนในตัวอย่าง สามารถสุ่มเอาเองได้ แต่ขอให้รู้กันในกลุ่มเท่านั้น)

       

       

       

      ตัวอย่างตาราง Key

      (Key ไม่จำเป็นต้องเหมือนในตัวอย่าง สามารถสุ่มเอาเองได้ แต่ขอให้รู้กันในกลุ่มเท่านั้น)

      S H U P F

      I B O D G

      A K C M E

      J R L W N

      T Y V Z X 

       

       

       

                                                                                                                                                      

       

      2.             แบ่งข้อความออกเป็นคู่ๆ หากมีตัวอักษรที่เหมือนกันติดกันให้เอา X คั่นกลาง และหากตัวสุดท้ายไม่ครบคู่ก็ให้ใส่ Z แทน เช่น หากต้องการเข้ารหัสคำว่า “the gold is under the tree” ก็สามารถจัดเป็นคู่ๆได้ดังนี้

       

      3.             ถ้าตัวอักษรไม่อยู่ในแถว หรือคอลัมน์เดียวกัน ให้แทนที่ตัวอักษรแบบไขว้กัน เช่น TH ในข้อความต้นฉบับ (จากตาราง T และ H ไม่ได้อยู่แถวหรือคอลัมน์เดียวกัน) จะกลายเป็น YS (T กลายเป็น Y และ H กลายเป็น S)

      4.             หากตัวอักษรทั้ง 2 ตัว อยู่คอลัมน์เดียวกันให้เอาตัวอักษรที่อยู่ข้างล่างติดกันมาแทน (หากตัวอักษรนั้นอยู่ล่างสุดให้ใช้ตัวบนสุดมาแทน) เช่น EG ก็จะกลายเป็น NE

      5.             ถ้าตัวอักษรทั้ง 2 ตัวอยู่แถวเดียวกัน ก็ให้นำตัวอักษรที่อยู่ขวามือมาแทนที่ (หากตัวอักษรนั้นอยู่ด้านขวาสุดให้นำตัวอักษรทางด้านซ้ายสุดมาแทนที่) เช่น DI ก็จะกลายเป็น GB

                      เข้ารหัสได้ดังนี้

       TH EG OL DI SU ND ER TH ET RE EZ

       

                      และหลังจากนี้ก็จะเข้าสู่ยุค Modern ซึ่งผมจะไม่พูดถึง เนื่องจากเข้าใจยาก และต้องใช้โปรแกรมคอมพิวเตอร์ในการคำนวณ

                      ผมหวังว่าท่านผู้อ่านทั้งหลายอาจได้ประโยชน์ไม่มากก็น้อยจากผม บางท่านอาจจะใช้ส่งข้อความหากิ๊กก็ได้ เพื่อเวลาแฟนเรามาตรวจจะได้ไม่รู้...


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

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

      ความคิดเห็น

      ×