517344-Computer Security,Element Cryptography

17/12/2012 7:38 PM Study 3,597 views

บทที่ 2 Element Cryptography

  • Steganography (การซ่อนข้อมูล)
        มาจากคำว่า Stego-(Cover) + -graphy(writing)
    Steganography เป็นการปกปิดข้อความบางอย่างที่เป็นอันตรายเพื่อส่งข้อมูลที่เป็นความลับนั้นไปยังผู้รับปลายทางโดยไม่มีผู้ใดสงสัย

    • Physical Steganography (การซ่อนข้อมูลทางกายภาพ) เช่น
      • การเขียนข้อความลงพื้นไม้และเคลือบด้วยแว๊กซ์
      • ซ่อนข้อความไปกับร่างกายมนุษย์
      • ส่งข้อความโดยการสักไปตามร่างกาย
      • ซ่อนข้อความโดยการใช้หมึกพิเศษเขียนลงบนกระดาษ แต่ปลายทางจะทราบวิธีการอ่านข้อความนั้นๆ
    • Digital Steganography (การซ่อนข้อมูลดิจิตอล) เช่น
      • ซ่อนข้อความในรูปภาพที่มีขนาดบิทต่ำหรือไฟล์เสียง
      • ซ่อนข้อมูลโดยการเข้ารหัสหรือการสุ่มข้อมูล
    • ความต้องการของการซ่อนข้อมูลแบบดิจิตอล
      • ความสมบูรณ์ของข้อมูลหลังจากทำการซ่อนข้อมูลแล้วจะต้องถูกต้องไม่ผิดเพี้ยน
      • เมื่อมีการเปลี่ยนแปลงข้อมูลไม่สามารถมองได้ด้วยตาเปล่า
      • ในการทำลายน้ำ เมื่อมีการเปลี่ยนแปลงการซ่อนข้อมูล จะต้องไม่มีผลต่อลายน้ำนั้นๆ
      • เราต้องคิดว่า attacker จะสามารถรับรู้ว่ามีการซ่อนข่อมูลภายในวัตถุ ดังน้ันควรทำให้เนียนที่สุด
    • Type of Steganography (ประเภทของการซ่อนข้อมูล)
      • Fragile : การฝั่งข้อมูลไปในไฟล์ อาจถูกแก้ไขหรือทำลายได้
      • Robust :  การซ่อนข้อมูลในไฟล์ที่มีทำงานที่แข็งแกร่ง ยากต่อการทำลาย เช่น
        • Fingerprinting : การพิมพ์ลายนิ้วมือ
        • Watermarking : ลายน้ำ
    • Issues in Data Hiding (ประเภทของการซ่อนข้อมูล)
      • Perceptibility : ความไม่ผิดรูปของการซ่อนข้อมูล (การซ่อนข้อมูลเกินขนาดอาจทำให้เกิดการผิดเพี้ยนหรือข้อมูลบิดเบียนได้)
      • Capacity : จำนวนข้อมูลที่สามารถบรรจุซึ่งสัมพันธ์กับ Perceptibility
      • Robustness to attacks : ความแข็งแกร่งจากการถูกโจมตี
      • Trade-offs between the three :
        • แข็งแกร่งมาก –> ความจุน้อย
    • Information Hiding Techniques (เทคนิคการซ่อนข้อมูล)
      • Text Techniques : ข้อความ
        • Line Shift Coding Protocol : การเว้นช่องว่างระหว่างแถวที่ต่างกัน
        • Word Shift Coding Protocol : การเว้นช่องว่างระหว่างคำ
      • Image Techniques : การซ่อนรูปภาพ
        • Simple Watermarking : การทำลายน้ำแบบง่ายๆ พิมพ์ลงบนรูป
        • LSB,Least Significant Bit Hiding : การปรับขนาดบิทของรูป
  • Terminology and Background
    • plain text  ข้อความต้นฉบับ
    • cipher text  ข้อความที่เข้ารหัสแล้ว
    • cipher   วิธีการสำหรับเปลี่ยน plain text เป็น cipher text
    • key ข้อมูลที่ใช้เข้ารหัสจะทราบเฉพาะผู้ส่งและผู้รับเท่านั้น
    • encipher (encrypt) ขั้นตอนการเปลี่ยน plain text ไปเป็น cipher text
    • decipher (decrypt) การแปลงข้อมูลกลับจาก  cipher text เป็น plain text
    • cryptography ศึกษาวิธีและหลักการการเข้ารหัส
    • crypt analysis การศึกษาหลักการหรือวิธีการถอดรหัสข้อมูลโดยที่ไม่ทราบวิธีการ หรือ key
    • cryptology การทำงานทั้ง  cryptography และ crypt analysis
  • Substitution Techniques (เทคนิคการแทนที่)
    • Caesar Cipher เป็นการแทนทีตัวอักษรที่อยู่ห่างออกไปข้างหน้า 3 ตัว เช่น ตัวที่ A แทนด้วย D ตัวที่ B แทนด้วย E
      Plain : ABCDEFGHIJKLMNOPQRSTUVWXYZ
      Cipher : DEFGHIJKLMNOPQRSTUVWXYZABC
      หากใช้การเข้ารหัสข้อมูลแบบ Caesar cipher เข้ารหัส Fox Code จะได้ดังนี้
      Plainertext : the quick brown fox jumps over the lazy dog
      Ciphertext : WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
    • Monoalphabetic Cipher เป็นการเข้ารหัสแบบ 1 ต่อ 1 เช่นใช้ในการแทนที่ตัว A ด้วยตัว Z แทนที่ตัว B ด้วยตัว Y และแทนที่ตัว C ด้วยตัว X เป็นต้น
      Plain : abcdefghijklmnopqrstuvwxyz
      Cipher : zyxwvutsrqponmlkjihgfedcba
      การเบรค Monoalphabetic ciphers จะทำได้ยากกว่าการเบรค Caesar cipher เนื่องจากมีคู่ที่เป็นไปได้อยู่ 26 ยกกำลัง 26 คู่ การเบรคจะต้องใช้การสุ่มไปเรื่อยๆจนกว่าจะสำเร็จ ซึ่งจะต้องใช้จำนวนครั้งในการคำนวณ 26! ครั้ง (26! = 26x25x24x23x…x1)
           การเบรค Monoalphabetic ciphers สามารถทำได้อีกวิธีหนึ่ง คือการวิเคราะห์ความถี่ของตัวอักษรที่ปรากฏ (Frequency analysis) ในรูปแบบกราฟเปรียบเทียบว่าตัวไหนเกิดบ่อยที่สุด

 

    • Playfair Cipher เป็น Block Cipher
      1. สร้างตาราง Key ขนาด 5×5 = 25 แบบสุ่มโดยตัดตัว Q ออกตัวอย่าง Key ขาด 5×5
      clip_image008
      รูปที่ 4 สร้างตาราง Key ของ Playfair cipher2. แบ่งตัวอักษร Plain Text ต้นฉบับออกมาเป็นคู่ ๆ หากมีตัวอักษรที่ติดกันให้เอา X คั่นกลาง และหากตัวสุดท้ายไม่ ครบคู่ให้ใส่ Z เข้าไปแทนเช่น ต้องการเข้ารหัสข้อความว่า
      “Hide the gold in the tree stump” ก็สามารถจัดตัวอักษร เป็นคู่ ๆ ได้ดังนี้HI DE TH EG OL DI NT HE TR EX ES TU MPใส่ X เข้าไปเนื่องจากมีตัว E สองตัวติดกัน3. ถ้าไม่อยู่ในแถวและ Column เดียวกัน ให้แทนที่ตัวอักษรแบบไขว้กัน เช่น HI ในข้อความต้นฉบับ (H ไม่ได้อยู่แถว เดียวกันกับ I และ H ก็ไม่ได้อยู่ใน Column เดียวกันกับ I) จะกลายเป็น BM (H กลายเป็น I และ B กลายเป็น M)4. ถ้า 2 ตัวอักษรอยู่ Column เดียวกัน ให้เอาตัวอักษรที่อยู่ข้างล่างติดกันมาแทนที่ โดยทำทีละตัว (หากตัวอักษรนั้นอยู่ ล่างสุดให้เอาตัวบนสุดมาแทนที่) เช่น DE ในข้อความต้นฉบับ จะกลายเป็น ND เนื่องจาก D ถูกแทนที่ด้วย N ส่วน E ถูกแทนที่ด้วย D5. ถ้า 2 ตัวอักษรอยู่แถวเดียวกัน ให้เอาตัวอักษรที่อยู่ขวามือมาแทนที่ โดยทำทีละตัว (หากตัวอักษรนั้นอยู่ขวาสุดให้ เอาตัวซ้ายสุดมาแทนที่) เช่น TU ในข้อความต้นฉบับ จะกลายเป็น UV เนื่องจาก T ถูกแทนที่ด้วย U ส่วน U ถูกแทนที่ ด้วย V
      หากทำการเข้ารหัสแล้วจะได้ดังนี้Plain Text: HI DE TH EG OL DI NT HE TR EX ES TU MP
      Cipher Text: BM ND ZB XD KY BE JV DM UI XM MN UV IF

       

    • Polyalphabetic Ciphers 
           อัลกอริทึ่มนี้ใช้เทคนิคที่ประกอบไปด้วย Multiple Monoalpha Cipher คือมี Monoalphabetic ciphers หลายๆตัวประกอบกัน ซึ่งจะมีการกำหนดระยะห่างให้กับตัวอักษรก่อนโดยระยะห่างในแต่ละช่วงจะไม่เท่ากันตัวอย่างเช่น n = 7 ให้เป็น C1 และ n = 15 ให้เป็น C2 หลังจากนั้นกำหนด รูปแบบ (Pattern) ในการใส่ข้อมูล เช่น C1,C2,C2,C1,C2
    • One-Time Pad  เป็นวิธีการเพิ่มความสามารถในการเข้ารหัสให้กับ Polyalphabetic Encryption โดยใช้การแม็ปจาก 1 ตัวอักษรให้เป็นไปได้หลายตัวอักษร ซึ่งมีวิธีการดังนี้· ใช้ Key ที่มีขนาดเท่ากันกับ Plain Text
      • Cipher Text ที่เป็นการคำนวณออกมาได้จะมีขนาดเท่ากันกับขนาดของ Plain Text
      • ตัวอักษรทุกตัวจะต้องมีการเปลี่ยนหมด เช่น หาก L ตัวแรกแม็ปได้เป็น N (สมมุติ) แล้ว L ตัวที่สองจะต้องแม็ปได้เป็นตัวอื่น เช่น ตัว V เป็นต้น
      • ใช้ Operation ง่ายๆ เช่น (+) เพื่อเข้ารหัสและ (-) เพื่อถอดรหัส หรือใช้ XOR สำหรับทั้งการเข้ารหัสและถอดรหัส
      • เพิ่มความสามารถของการเข้ารหัสแบบ polyphabetic โดยการ map 1 ตัวอักษรไปได้หลายตัว
      • ข้อเสีย – ปัญหาคือจำนวน key ที่มีเท่ากับ plan text ต้องใช้พื้นที่จำนวนมากจัดเก็บและ key ที่ใหญ่ทำให้ใช้งานลำบาก นอกจากนี้ผู้ส่งยังต้องส่ง key ไปยังปลายทางเพื่อใช้ในการถอดรหัสอาจทำให้ key ถูกขโมยระหว่างการส่งได้
    • การเข้ารหัสแบบ One-Time Pad นี้ Cipher Text จะมีความเป็น Random มากหรือน้อยขึ้นอยู่กับความเป็น Random ของ Key ตัวอย่างการเข้ารหัสด้วยวิธี One-Time Pad แสดงดังนี้ (จะเห็นว่า L ตัวแรกแม็ปได้เป็น N ส่วน L ตัวที่สองแม็ปได้เป็น V ขึ้นอยู่กับคีย์)
      Plain Text : H E L L O
      Key : X M C K L
      Cipher Text : E Q N V Z การเข้ารหัส
      7 (H) 4 (E) 11 (L) 11 (L) 14 (O) message (Plain Text)
      + 23 (X) 12 (M) 2 (C) 10 (K) 11 (L) key
      = 30 16 13 21 25 message + key

      4 (E) 16 (Q) 13 (N) 21 (V) 25 (Z) message + key (mod 26) A Cipher text การถอดรหัส
      4 (E) 16 (Q) 13 (N) 21 (V) 25 (Z) Cipher Text
      – 23(X) 12 (M) 2 (C) 10 (K) 11 (L) Key
      = -19 4 11 11 14 Cipher Text – key
      = 7 (H) 4 (E) 11 (L) 11 (L) 14 (O) Cipher Text – key (mod 26) à message (Plain Text)
    • Transposition Cipher (การเข้ารหัสแบบเรียงสับเปลี่ยน)
      เป็นการแปลงรหัสผ่านแบบสลับตำแหน่งโดยพิจารณาจากการเรียงสับเปลี่ยนหรือการสลับตำแหน่ง ประกอบด้วย
      • Rail Fence Cipher หรืออัลกอริทึมแบบรัว
        การเข้ารหัสแบบ Rail Fence Cipher จะมีการกำหนด key ซึ่งใช้เป็นจำนวนแถวของผลลัพธ์ ดังนั้นต้องนับจำนวนตัวอักษรในข้อความที่เป็น Plain Text แล้วหารด้วยจำนวน  key จะได้จำนวนคอลัมน์และผลลัพธ์ (กรณีเศษให้ปัดขึ้นไปอีก 1) นึกถึง
        เมตริกซ์ 2 มิติ แล้วนำข้อความใน   Plain Text มาเขียนใหม่ในเมทริกว์จากบนลงล่างในคอลัมน์จนหมด จากนั้นเขียนข้อความในเมทริกซ์จากซ้ายไปขวาของแต่ละแถวก็จะได้ข้อความที่ถูกข้ารหัสแล้ว
  • ลักษณะของการเข้ารหัสข้อมูลที่ดี
    • ระดับความปลอดภัยควรแปรผันกับความยาก คือ ถ้าเข้ารหัสซับซ้อนควรมีความปลอดภัยสูง
    • ไม่ควรมีข้อจำกัดในการเลือกใช้กุญแจการเข้ารหัส
    • กระบวนการเข้ารหัสต้องมีความสะดวกและง่ายเพราะการเข้ารหัสที่ยากอาจเกิดข้อผิดพลาดได้
    • ความผิดพลาดของการเข้ารหัสในจุดใดๆ ไม่ควรมีผลต่อส่วนอื่น
    • เมื่อเข้ารหัสข้อมูลเสร็จขนากของ Cipher Text ต้องมีขนาดไม่ใหญ่กว่า Plain Text
  • Symmetric and Asymmatric Encryption
    • Symmetric/Secret key : ใช้ key ในการเข้ารหัสและถอดรหัสดอกเดียวกัน
    • Asymmetric/Public Key : ใช้ public key ในการเข้ารหัสและใช้ private key ในการถอดรหัส
  • Stream and Block Ciphers
    • Stream Cipher เป็นการเปลี่ยนตัวอักษรใน plan text ไปเป็น cipher text เช่น Caesar, Vigener
    • Block Cipher การเข้ารหัสข้อมูลแบบกลุ่มหรือบล๊อก
  • ข้อดี – ข้อเสีย Stream Encrption Algorithm
    • ข้อดี
      • มีความรวดเร็วเนื่องจากไม่ต้องรอหรือเกี่ยวข้องกับตัวอักษรอื่น
      • มีความผิพพลาดต่ำ เพราะถาผิดพลาดตัวใดตัวนึงจะไม่เกี่ยวกับตัวอักษรอื่น
    • ข้อเสีย
      • มีความสามารถต่ำในการกระจายตัวอักษร เนื่องจากการเข้ารหัสทีละตัวโดยไม่คำนึงถึงตัวอื่นการกระจายความซ้ำอาจทำไม่ได้
      • ง่ายต่อการตัดแปลงแก้ไข เพราะไม่อาศัยความถูกต้องของตัวอักษรตัวอื่น
  • ข้อดี – ข้อเสีย Block Encryption Algorithm
    • ข้อดี
      • มีการกระจายความซ้ำของตัวอักษร โดยตัวอักษรที่เข้ารหัสจะถูกแทนด้วยตัวอักษรหลากหลาย
      • ป้องกันการดัดแปลงหรือแก้ไขข้อมูลเพิ่มเติม
    • ข้อเสีย
      • ใช้เวลาเข้ารหัสนาน ถ้าข้อมูลไม่เต็มบล๊อกก็ไม่สามารถเข้ารหัสได้
      • มีความผิดพลาดต่อเนื่อง เพราะหากตัวใดตัวนึงผิดพลาดสามารถส่งความผิดพลาดไปยังตัวอื่นภายในบล๊อกได้

 

ขอบคุณข้อมูลจาก

Slide วิชา 517344-Computer Security
http://beekie39.blogspot.com/2010/08/cryptography.html
http://www.vb.in.th/2007/07/rail-fence-cipher-vbnet-rail-fence.html

, , , , , , , , , , , , , , , , , , , , ,