จากหลักฐานทางประวัติศาสตร์ที่อาจจะตีความได้ไม่ชัดเจนมากนัก บ้างก็เชื่อว่าการเข้ารหัสเกิดขึ้นโดยชาวอียิปต์เมื่อประมาณ 4,500 ปีมาแล้ว บ้างก็เชื่อว่าคิดค้นโดยชาวอาหรับเมื่อประมาณ 500-600ปีก่อนคริสตกาล วิธีการเข้ารหัสที่สำคัญในยุคก่อนๆมีหลายวิธีการ เช่น Monoalphabetic ciphers Polyalphabetic ciphers และ Caesar cipher
Caesar cipher
การเข้ารหัสข้อมูลแบบ Caesar cipher มีขึ้นในราว 50-70 ปีก่อนคริสตกาล ได้รับการคิดค้นโดยกษัตริย์ Julius Caesar แห่งโรมัน เพื่อใช้ในการเข้ารหัสข้อความในสารที่ส่งในระหว่างการทำศึกสงครามเพื่อป้องกันไม่ให้ศัตรูสามารถอ่านข้อความในสารนั้นได้หากสารนั้นถูกแย่งซิงไป การเข้ารหัสแบบ Caesar cipher จะใช้วิธีการแทนที่ตัวอักษรต้นฉบับด้วยตัวอักษรที่อยู่ห่างออกไปข้างหน้าสามตัว เช่น แทนที่ตัว A ด้วยตัว D และแทนที่ตัว B ด้วยตัว E เป็นต้น ดังนั้นการเข้ารหัสแบบ Caesar cipher จึงเป็นการเลื่อนตัวอักษรโดยจำนวนครั้งของการเลื่อนเท่ากับสาม Shiftment, n = 3
วิธีการ แม็ปตัวอักษรในการเข้ารหัสแบบ Caeser cipher สามารถเขียนได้ตามนี้
plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ
cipher: DEFGHIJKLMNOPQESTUVWXYZABC
หรือเข้ารหัสแบบ Fox Code
plaintext: the quick brown fox jumps over the lazy dog
ciphertext: WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
Fox Code คือประโยค the quick brown fox jumps over the lazy dog ซึ่งเป็นประโยคสั้นๆที่มีตัวอักษรภาษาอังกฤษครบทั้ง 26 ตัว
Monoalphabetic ciphers
การเข้ารหัสข้อมูลแบบ Monoalphabetic cipher หรือจะเรียกว่า Monoalphabetic substitution ciphers คิดค้นโดยชาวอาหรับ ( อาตื่น ล้อเล่นครับ 55+ ) โดยใช้วิธีการแทนที่ตัวอักษรแบบ 1 ต่อ 1 ไม่ใช่การเลื่อน ตัวอย่าง Monoalphabetic ciphers ในยุคแรกๆคือการเข้ารหัสข้อมูลแบบ Atbash ใช้แทนที่ตัว A ด้วยตัว Z แทนที่ตัว B ด้วยตัว Y แล้วแทนที่ตัว C ด้วยตัว X ครับ
plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ
cipher: ZYXWVUTSRQPONMLKJIHGFEDCBA
Polyalphabetic Encryption
Polyalphabetic Encryption คิดค้นโดย Blaise De Vignere ชาวฝรั่งเศสเมื่อประมาณ 500 ปี ที่แล้ว อัลกอริทึมนี้ใช้เทคนิคที่ประกอบไปด้วย Multiple Monoalpha Cipher คือมี Monoalphabetic ciphers หมายๆตัวประกอบกัน ซึ่งจะมีการกำหนดระยะห่างให้กับตัวอักษรก่อนโดยระยะห่างในแต่ละช่วงจะไม่เท่ากันตัวอย่างเช่น n = 7 ให้เป็น C และ n = 15 ให้เป็น C2 หลังจากนั้นกำหนด รูปแบบ Pattem ในการใส่ข้อมูล เช่น C1 C2 C2 C1 C2
เทคนิคนี้จะใช้ในช่วงสงครามโลกครั้งที่ 1 และยากที่จะถอดรหัสด้วยมือเปล่า แต่ถ้าใช้คอมพิวเตอร์จะสามารถถอดรหัสได้ง่าย นอกจากนั้นหากต้องการจะเบรคโดยใช้คอมพิวเตอร์ก็จะทำการเบรคได้ง่ายเช่นกัน ผู้ที่เบรค Polyalphabetic Encryption ได้ เป็นชาวรัสเซียชื่อ Friedrich Kasiski เบรคได้ในปี 1863 โดยให้ข้อสังเกตว่าถ้าได้ Cipher text ที่มีความยาวพอ Pattem จะเริ่มซ้ำและสามารถที่จะเห็นความเหมือนของ Cipher text โดยดูที่ Frequency Analysis ตัวอักษรแต่ละตัวปรากฏบ่อยแค่ไหนบ้างครับ
One-Time Pad
One-Time Pad คิดค้นโดย Gilbert Vernam ชาวอังกฤษในช่วงสงครามโลกครั้งที่ 1 เป็นวิธีการเพิ่มความสามารถในการเข้ารหัสให้กับ Polyaliphabetic Encryption โดยใช้การแม็ปจาก 1 ตัวอักษรให้เป็นไปได้หลายตัวอักษร ซึ่งมีวิธีตามนี้ครับ
ใช้ Key ทีมีขนาดเท่ากันกับ Plain Text
Cipher Text ที่เป็นการคำนวณออกมาได้จะมีขนาดเท่ากันกับขนาดของ Plain Text
ตัวอักษรทุกตัวจะต้องมีการเปลี่ยนหมด เช่น หาก L ตัวแรกแม็ปได้เป็น N แล้ว L ตัวที่สองจะต้องแม็ปได้เป็นตัวอื่น เช่น ตัว V เป็นต้น
ใช้ Operation ง่ายๆ เช่น (+) เพื่อเข้ารหัสและ (-) เพื่อถอดรหัส หรือใช้ XOR สำหรับทั้งการเข้ารหัสและถอดรหัส
การเข้ารหัสแบบ One-Time Pad นี้ Cipher Text จะมีความเป็น Random มากหรือน้อยขึ้นอยู่กับความเป็น Random ของ Key ตัวอย่างการเข้ารหัสด้วยวิธี One-Time Pad
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 ) --> Cipher Text
Tritanium Rifles and Pifles - Tactical
ตอบลบTritanium smith titanium Rifles. One is titanium expensive of the most popular rifles in the world, the Tiger Tiger black titanium fallout 76 is a 2014 ford focus titanium hatchback high-quality, lightweight double-action double-action rifles. This titanium vs steel