บทที่ 5 การเข้ารหัสข้อมูลเบื้องต้น

Download Report

Transcript บทที่ 5 การเข้ารหัสข้อมูลเบื้องต้น

อ.บุญฤทธิ์ คิดหงัน
ภาควิชาเทคโนโลยีสารสนเทศ
คณะวิทยาศาสตร์ และเทคโนโลยี มหาวิทยาลัยฟาร์ อสิ เทอร์ น
บทที่ 5 การเข้ ารหัสข้ อมูลเบือ้ งต้ น
การเข้ ารหัสข้ อมูล
ระบบรหัสลับ
อัลกอริธึมในการเข้ ารหัส
เครื่องมือในการเข้ ารหัส
โปรโตคอลรักษาความมั่นคงปลอดภัยในการติดต่ อสื่ อสารข้ อมูล
การโจมตีระบบรหัสลับ
อาจารย์ บุญฤทธิ์ คิดหงัน
ภาควิชาเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ และเทคโนโลยี
มหาวิทยาลัยฟาร์ อสิ เทอร์ น
การเข้ารหัสข้อมูล
 มีจุดประสงค์เพื่อรักษาความลับของข้อมูล ข้อมูลนั้นจะถูกเปิ ดอ่านโดย
บุคคลที่ได้รับอนุญาตเท่านั้น หลักการของการเข้ารหัสข้อมูลคือแปลง
ข้อมูล (encrypt) ไปอยูใ่ นรู ปของข้อมูลที่ไม่สามารถอ่านได้
โดยตรง ข้อมูลจะถูกถอดกลับด้วยกระบวนการถอดรหัส
(decryption) ดังรู ปที่ 1
ไ
การเข้ารหัสข้อมูล
 ข้อมูลที่สามารถอ่านได้ เรี ยกว่า plain text หรื อ clear
text
 ข้อมูลที่เข้ารหัสแล้วเราเรี ยกว่า cipher text
 ข้อมูลเมื่อเสร็ จสิ้ นการเข้ารหัสแล้ว ผลที่ได้กค็ ือ cipher text ใน
การอ่านข้อความ cipher text นั้น
องค์ประกอบของรหัสลับ
 ข้ อความต้ นฉบับ (Plain text) คือ ข้อมูลต้นฉบับซึ่ งเป็ นข้อความที่สามารถ
อ่านแล้วเข้าใจ
 อัลกอริทึมการเข้ ารหัสลับ (Encryption Algorithm) คือ
กระบวนการหรื อขั้นตอนที่ใช้ในการแปลงข้อมูลต้นฉบับเป็ นข้อมูลที่ได้รับการเข้ารหัส
 กุญแจลับ (Key) คือ เป็ นกุญแจที่ใช้ร่วมกับ อัลกอริ ทึมในการเข้ารหัส และ
ถอดรหัส
 ข้ อความไซเฟอร์ (Ciphertext) คือ ข้อมูลหรื อข่าวสารที่ได้รับการเข้ารหัส
ทาให้อ่านไม่รู้เรื่ อง
 อัลกอริทึมการถอดรหัสลับ (Decryption Algorithm) คือ
กระบวนการหรื อขั้นตอนในการแปลงข้อความไซเฟอร์ให้กลับเป็ นข้อความต้นฉบับ
โดยอาศัยกุญแจลับดอกเดียวกัน
การเข้ารหัสแบ่งออกเป็ น 2 ประเภทใหญ่ๆคือ
 1. Symmetric Cryptography (Secret
key)
 2. Asymmetric Cryptography
(Public key)
Symmetric Cryptography
(Secret key)
 เรี ยกอีกอย่างว่า Single-key algorithm หรื อ onekey algorithm คือ การเข้ารหัสและถอดรหัสโดยใช้กญ
ุ แจ
รหัสตัวเดียวกัน คือ ผูส้ ่ งและผูร้ ับจะต้องมีกญ
ุ แจรหัสที่เหมือนกันเพื่อใช้
ในการเข้ารหัสและถอดรหัส ดังรู ป
Symmetric Cryptography
(Secret key)
Asymmetric Cryptography
(Public key)
 การเข้ารหัสและถอดรหัสโดยใช้กญ
ุ แจรหัสคนละตัวกัน การส่ งจะมี
กุญแจรหัสตัวหนึ่งในการเข้ารหัส และผูร้ ับก็จะมีกญ
ุ แจรหัสอีกตัวหนึ่ง
เพื่อใช้ในการถอดรหัส ผูใ้ ช้รายหนึ่งๆจึงมีกญ
ุ แจรหัส 2 ค่าเสมอคือ
กุญแจสาธารณะ (public key) และ กุญแจส่ วนตัว (private
key) ผูใ้ ช้จะประกาศให้ผอู ้ ื่นทราบถึงกุญแจสาธารณะของตนเอง
เพื่อให้นาไปใช้ในการ เข้ารหัสและส่ งข้อมูลที่เข้ารหัสแล้วมาให้ ข้อมูลที่
เข้ารหัสดังกล่าวจะถูกถอดออกได้โดยกุญแจส่ วนตัวเท่านั้น ดังรู ปที่
 ในทางปฏิบตั ิแล้วมักมีการใช้การเข้ารัหสทั้งสองระบบร่ วมกันเช่นใน
ระบบ PGP (Pretty Good Privacy) ซึ่งใช้ในการ
เข้ารหัส E-mail จะใช้วิธีสร้าง session key ซึ่งเป็ นรหัส
ลับตามแบบ secret key) เมื่อข้อมูลถูกเข้ารหัสด้วย
session key แล้ว จากนั้น session key จะถูก
เข้ารหัสโดยใช้กญ
ุ แจสาธารณะของผูร้ ับ และถูกส่ งไปกับข้อมูลที่เข้ารหัส
แล้ว ดังรู ป
การเข้ารหัส
 การถอดรหัสนั้น
 การรวมกันของวิธีการเข้ารหัสสองวิธีเป็ นการรวมความสะดวกของการ
เข้ารหัสแบบ สาธารณะกับความเร็ วในการเข้ารหัสแบบทัว่ ไป เนื่องจากการ
เข้ารหัสแบบทัว่ ไปเร็ วกว่าการเข้ารหัสแบบสาธารณะประมาณ 1000 เท่า
 แต่การเข้ารหัสแบบสาธารณะมีขอ้ ดีในเรื่ องวิธีแจกจ่ายรหัส ดังนั้นจึงนิยมใช้
การเข้ารหัสข้อมูลซึ่ งมีขนาดใหญ่ดว้ ยวิธีการเข้ารหัสแบบ ทัว่ ไป และใช้ของ
การเข้ารหัสแบบสาธารณะสาหรับการส่ งกุญแจของการเข้ารหัสแบบทัว่ ไป
 อ้างอิง:
http://www.ku.ac.th/emagazine/august44/it/encryp.html
ระบบรหัสลับ
 ระบบรหัสลับ Cryptosystems หรื อเรี ยกว่า Cipher มี
องค์ประกอบหลายส่ วน เพื่อการเข้ารหัสลับข้อมูล ประกอบด้วย อัลกอริ
ทึ่ม เทคนิคการจัดการข้อมูล กระบวนการ และขั้นตอนการทางาน จะถูก
ผสมผสานเข้าด้วยกันเพื่อเข้ารหัสข้อมูล
 มีวตั ถุประสงค์เพื่อรักษาข้อมูลไว้เป็ นความลับ
Confidentiality และจัดเตรี ยม กลไกการพิสูจน์ตวั ตน
Authentication และการให้สิทธิ์ Authorization
ในการดาเนินงานแต่ละขั้นตอนทางธุรกิจ
ในบทนี้จะกล่าวถึง








Substitution Cipher
Caesar cipher
Vigenere Cipher
columnar Transposition Cipher
Exclustive OR
Vernam Cipher
Running Key Cipher
Hash Function หรื อ One-Way Function
5.1 Substitution Cipher
 ระบบรหัสลับแบบสับเปลี่ยน (Substitution Cipher)
หลักการก็คือาต้องสับเปลี่ยนแต่ละตัวอักษรใน plaintext ด้วย
ตัวอักษรอื่น แต่ก่อนอื่นต้องเลือกก่อนว่าจะแทนแต่ละตัวอักษรด้วยอะไร
อย่างเช่น A แทนด้วย T, B แทนด้วย P ฯลฯ ดังตารางต่อไปนี้
ตัวอย่าง
 สมมุติวา่ plaintext คือ You are so beautiful to
me. (เธอสวยเหลือเกินสาหรับฉัน)
แทนตัวอักษรแต่ละตัวข้างบนนี้ดว้ ยตัวอักษรในตาราง เราก็จะได้
ciphertext ดังนี้
LAG TEM KA PMTGDXHGI DA VM.
ส่ วนจะเอาช่องว่างและ punctuation marks ต่างๆออกหรื อไม่ก็
ได้ แต่จะทาให้เดาข้อความได้ยากขึ้น
 ระบบรหัสลับแบบสับเปลี่ยนนี้มีหลายหลากแบบ เพราะมีการนาไป
ดัดแปลงกัน เพื่อให้ key ดูง่ายจาง่ายขึ้น อย่างเช่นในกรณี ของ
Caesar shift cipher หรื ออาจจะเพื่อตบตาคนดูวา่ เป็ น
ภาษาอื่น หรื อ ไม่ใช่ภาษาอะไรเลย
 เช่น อาจจะใช้ตารางต่อไปนี้เป็ น key
 การสุ่ มจับคู่ตวั อักษร แล้วสับเปลี่ยนตัวอักษรแต่ละตัวใน
plaintext ด้วยตัวอักษรที่เป็ นคู่กนั ถ้าเราใช้วิธีน้ ีกบั ตัวอักษรของ
ภาษาอังกฤษ เราก็อาจจะจับคู่ได้ดงั นี้
(A,V), (D,X), (H,B), (I, G), (K,J),
(M,C),(O,Q),(R,L),(S,N),(U,E),(W,F),(
Y,P),(Z,T)
แล้วข้อความ plaintext
You are so
beautiful to me ก็กลายมาเป็ น
PQE VLU NQ HUVEZGWER ZQ CU.
 อ้างอิง www.vcharkarn.com/varticle/1075
Caesar cipher
 Caesar cipher เป็ นการเข้ารหัสแบบซีเคร็ ทคีย ์ (Secret
Key) หรื อ Symmetric Key Cryptography
คิดค้นโดยกษัตริ ย ์ Julius Caesar เพื่อสื่ อสารกับทหารใน
กองทัพ และป้ องกันไม่ให้ข่าวสารรั่วไหลไปถึงศัตรู
 หลักการของ Caesar cipher คือ จะ shift หรื อ เลื่อน
ตัวอักษรไป 3 ตาแหน่ง จากตาแหน่งเดิม
Caesar cipher
Caesar cipher
Caesar cipher
การเข้ารหัสของ Caesar จะใช้การเทียบตัวอักษรปกติ (Plain) กับ
Cipher เช่น
Plaintext:
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Ciphertext:
WKH TXLFN EURZQ IRA
MXPSV RYHU WKH ODCB GRJ
Plain :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
DEFGHIJKLMNOPQRSTUVWXYZABC
Cipher :
Caesar cipher
และการถอดรหัสก็จะใช้การเทียบย้อนกลับระหว่าง
Cipher กับ Plain
Caesar cipher
 จุดสังเกตของ Caesar Cipher คือ Key ที่ใช้ จะเป็ น Key D เนื่องจาก
ตัวอักษรตัวแรกของภาษาอังกฤษคือตัว A เมื่อผ่านการเข้ารหัสจะถูก
แทนที่ดว้ ยตัว D ดังนั้นจะเห็นว่า Cipher ของ Caesar จะขึ้นต้นด้วยตัว D
Caesar cipher
สามารถกาหนดใช้ Key อืน่ ๆ ได้ อกี ดังรูป
ข้อดีของการเข้ารหัสแบบซีซาร์ (Caesar)
 คือ ความง่ ายในการเข้ ารหัส แต่ กม็ ีข้อเสี ยคือการทีส่ ามารถจะทาการ
วิเคราะห์ หาข้ อความเดิมจาก Cipher Text ได้ ง่าย ซึ่งการ
เข้ารหัสที่ดีน้ นั จะต้องหลีกเลี่ยงการถูกวิเคราะห์โดยง่ายนี้ให้ได้ วิธีการที่
นามาวิเคราะห์ดงั กล่าวนี้กค็ ือ การหาสิ่ งซ้ า ๆ กันจากวิธีการเข้ารหัสที่เรา
เรี ยกว่าการหา Pattern ของตัวอักษร ซึ่งหากทาการวิเคราะห์ให้ดี
จากตัวอักษรของ Cipher Text จานวนมากพอ ก็จะเห็นได้ง่าย
ว่ามีการเลื่อนลาดับของตัวอักษร 3 ตัว ดังนั้นจึงไม่เป็ นการยากนักที่ผไู ้ ม่
ประสงค์ดีจะทาการCryptanalysis ของวิธีการเข้า รหัสแบบซี
ซาร์น้ ี
การแกะรหัส Caesar Cipher
 เราสามารถที่จะถอดรหัสของ Caesar ได้ โดยง่ ายแม้ ไม่ รู้ Key โดยการกระทาที่เรียกว่ า
Brute Force Attack ซึ่งสามารถแกะรหัสได้ โดยไล่ ส่ ุ ม Key เพียงไม่ เกิน 25 ครั้ง
เท่ านั้น
Decryption shift
Candidate plaintext
0
(Ciphertext)
exxegoexsrgi
1
(Key B)
fyyfhpfytshj
2
(Key C)
gzzgiqgzutik
...
24
(Key Y)
cvvcemcvqpeg
25
(Key Z)
dwwdfndwrqfh
หลักการแกะรหัส Caesar Cipher
 การทา Brute Force Attack ยังถือว่าเป็ นการเสี ยเวลา เพราะต้องไล่สุ่ม Key
ไปเรื่ อยๆ จนกว่าจะเจอ
 ต่อมาจึงมีการคิดค้นวิธีต่างๆ ที่จะช่วยให้เราสามารถคาดเดารหัสได้ง่าย
และเร็ วขึ้น โดยใช้กระบวนการทางสถิติต่างๆ เช่น Frequency Analysis
 วิธีการเดาจะเริ่ มจากการค้นหาตัวอักษรที่ซ้ าๆ กันก่อน
หลักการแกะรหัส Caesar Cipher(ต่ อ)
 พิจารณาอักษร 3 ตัวแรกของประโยค ตัวที่ 2 หรื อ 3 มักจะเป็ นสระเสมอ
 ความน่าจะเป็ นของตัวอักษรที่ซ้ าๆ กันได้แก่
 ตัวอักษรที่เป็ นสระในภาษาอังกฤษ
AEIOU
 ตัวอักษรที่มีความถี่ปรากฏในคาภาษาอังกฤษบ่อยที่สุด
CDHLNRST
การเพิ่มระดับความปลอดภัยให้กบั การเข้ารหัส
 วิธีหนึ่งที่สามารถนามาใช้ในการเพิ่มระดับความปลอดภัยให้กบั การ
เข้ารหัสแบบที่ใช้สญ
ั ลักษณ์เพียงหนึ่งตัวมาแทนค่าตัวอักษร ก็คือการใช้
กุญแจเข้ารหัสมาช่วย (Encryption Key) อย่างไรก็ตามการ
ใช้วิธีที่เรี ยกว่า Frequency Distribution ซึ่งเป็ นการวัด
เปรี ยบเทียบระหว่างความซ้ ากันของตัวอักษรทั้งหมดที่มีอยูใ่ นข้อความที่
เป็ นCipher Text แล้วเอาไปเปรี ยบเทียบกับความซ้ ากันของ
ตัวอักษรทั้งหมดที่มีอยูข่ องคาในภาษาอังกฤษ ผลที่ได้กค็ ือผูท้ ี่ทาการเจาะ
รหัสนั้นสามารถรู ้ได้วา่ ตัวอักษรที่ใช้ใน Cipher Text นั้นเป็ น
ตัวอักษรตัวใดกันแน่ในภาษาอังกฤษ
การแทนค่าตัวอักษรโดยการใช้สญ
ั ลักษณ์หลายตัว
(Poly-alphabetics Substitutions Ciphers)
 เป็ นวิธีที่ได้รับการปรับปรุ งจากวิธีแรกโดยมีจุดประสงค์คือ
ไม่ให้สามารถทาการวิเคราะห์ได้โดยใช้วธิ ี Frequency
Distributions
 หลักการที่ใช้กค็ ือการใช้สญ
ั ลักษณ์หลายตัวเพื่อแทนค่า
ตัวอักษรภาษาอังกฤษตัวเดียววิธีการนี้สามารถลดความซ้ ากัน
ของตัวอักษรในข้อความ Cipher Text ได้ ดังนั้นผูท้ ี่
ทาการเจาะรหัสได้สามารถทาการเปรี ยบเทียบได้วา่ ตัวอักษรใน
ข้อความ Cipher text นั้นใช้แทนตัวอักษรใดกันแน่
ในภาษาอังกฤษ
การแทนค่าตัวอักษรโดยการใช้สญ
ั ลักษณ์หลายตัว
(Poly-alphabetics Substitutions Ciphers)(ต่อ)
 วิธีการแทนค่าที่นิยมนามาใช้กบั การเข้ารหัสแบบนั้นก็คือ การใช้ตารางแทนค่าที่
เรี ยกว่า Vigenere Tableaux (แทบ-โลส). ซึ่งสามารถทาให้การ
วิเคราะห์โดยใช้ Frequency Distributions ยากขึ้นมากแต่
อย่างไรก็ตามยังมีวธิ ีการที่ใช้ได้ผลสามารถนามาทาการเจาะรหัสแบบนี้ นัน่ คือวิธีการ
ที่เรี ยกว่า The Kasiski Method for Repeated
Patterns โดยอาศัยหลักที่วา่ คาในภาษาอังกฤษนั้นมีคาที่ใช้ทวั่ ไปและซ้ ากัน
มากเช่น คาว่า the, is, are, and, then, but, im-, in-,
un-, -tion, -ion…..etc… เป็ นต้น และคาพวกนี้สามารถทาให้เกิด
Pattern ได้ใน Cipher Text ดังนั้นหากใช้วธิ ีการทางคณิ ตศาสตร์ที่
เกี่ยวกับความน่าจะเป็ น (Probability) มาทาการวิเคราะห์ pattern
เหล่านี้โดยละเอียดแล้วก็จะสามารถเจาะรหัสหาข้อความเดิม (Clear Text)
ได้
Vigenere cipher
 Vigenere cipher เป็ นการเข้ารหัสแบบซีเคร็ ทคีย ์
(Secret Key) หรื อ Symmetric Key
Cryptography ที่อาศัยพื้นฐานเดียวกันกับ Caesar
 หลักการของ Vigenere cipher คือ จะใช้ Key ที่เป็ นคา
มาเรี ยงต่อๆ กัน แล้วเข้ารหัสโดยสร้าง Caesar Cipher จาก
ตัวอักษรที่ปรากฏอยูใ่ น Key
Vigenere cipher
 ตัวอย่ างเช่ น
เรามี Plaintext :
ATTACK AT DAWN และเลือกใช้ Keyword : LEMON
นา Plaintext มาเรี ยงคู่กบั Keyword ให้ ได้ ความยาวเท่ากันดังนี ้
Plaintext :
Key
:
Ciphertext :





ATTACK
LEMONL
LXFOPV
AT
EM
EF
DAWN
ONLE
RNHR
ตัวอักษรตัวแรก - A จะถูกเข้ ารหัสด้ วย Caesar Cipher Key L
ตัวอักษรตัวที่ 2 - T จะถูกเข้ ารหัสด้ วย Caesar Cipher Key E
ตัวอักษรตัวที่ 3 - T จะถูกเข้ ารหัสด้ วย Caesar Cipher Key M
ตัวอักษรตัวที่ 4 - A จะถูกเข้ ารหัสด้ วย Caesar Cipher Key O
ตัวอักษรตัวที่ 5 - C จะถูกเข้ ารหัสด้ วย Caesar Cipher Key N
และเรี ยงต่อไปเรื่ อยๆ จนกว่าจะครบประโยค
Vigenere cipher
Vigenere cipher
 การถอดรหัสก็ให้ ทากระบวนการย้ อนกลับเหมือนกับของ Caesar แต่ ต้องรู้ Keyword
 Ciphertext : LXFOPV EF RNHR และ Keyword : LEMON
นา Ciphertext มาเรี ยงคู่กบั Keyword ให้ได้ความยาวเท่ากันดังนี้
Ciphertext : LXFOPV EF RNHR
Key
: LEMONL EM ONLE
Plaintext : ATTACK AT DAWN





ตัวอักษรตัวแรก - L จะถูกถอดรหัสด้วย Caesar Cipher Key L
ตัวอักษรตัวที่ 2 - X จะถูกถอดรหัสด้วย Caesar Cipher Key E
ตัวอักษรตัวที่ 3 - F จะถูกถอดรหัสด้วย Caesar Cipher Key M
ตัวอักษรตัวที่ 4 - O จะถูกถอดรหัสด้วย Caesar Cipher Key O
ตัวอักษรตัวที่ 5 - P จะถูกถอดรหัสด้วย Caesar Cipher Key N
และเรี ยงต่อไปเรื่ อยๆ จนกว่าจะครบประโยค
Vigenere cipher
 ใช้ Keyword ที่เป็ นคามาเรี ยงต่อๆ กัน แล้วเข้ารหัสโดยสร้าง Caesar Cipher จาก
ตัวอักษรที่ปรากฏอยูใ่ น Key ทาให้โครงสร้างของ Cipher ที่ใช้ในการเข้ารหัส
ซับซ้อนยิง่ ขึ้น
 แต่ถา้ Keyword ถูกขโมยไปใช้ ข้อมูลก็จะถูกถอดรหัสได้
 ถึงไม่รู้ Keyword ก็ยงั สามารถคาดเดา Keyword ได้จากการทดสอบตัวอักษรที่เรี ยง
ซ้ าๆ กันควบคู่กบั การพิจารณาระยะห่าง โดยวิธีการที่เรี ยกว่า Kasiski examination
และ Friedman test (บ้างก็รู้จกั ในชื่อ Kappa Test)
columnar transposition cipher
 ไซเฟอร์แบบคอลัมน์ (columnar transposition
cipher) เริ่ มต้นด้วยการกาหนดขนาดคอลัมน์ ที่ใช้ในการเข้ารหัส
 เขียนข้อความต้นฉบับที่ละแถวลงในเมทริ กซ์ ที่มีจานวนคอลัมน์ ตาม
กาหนด เช่น “go to the conference
tomorrow at mbk”
 และเลือกใช้กญ
ุ แจ 412536
ตัวอย่าง
 ลาดับแถว =>

1
g
2
o
3
t
4
o
5
t
6
h




 key
e
r
o
w
4
c
e
m
a
1
o
n
o
t
2
n
c
r
m
5
f
e
r
b
3
e
t
o
k
6
=>
ตัวอย่าง ไซเฟอร์แบบคอลัมน์
 ข้อความไซเฟอร์ที่ได้
OC EM ATO NOTTFERBGE ROWONCRM HE TOK
การเข้ารหัสแบบ eXclusive OR (เอ็กซ์ คลูซีฟ ออร์ - XOR)
 XOR เป็ นการกระทาทางตรรกศาสตร์ โดยมีหลักการ คือ
 มีอนิ พุตตั้งแต่ สองอินพุตขึน้ ไป เช่ น A, B (ในตารางความจริง
ด้ านล่าง)
 จะให้ เอาท์ พุตเป็ นลอจิก 0 เมือ่ อินพุตมี ลอจิกเหมือนกัน
 จะให้ เอาท์ พุตเป็ นลอจิก 1 เมือ่ อินพุตมี ลอจิกต่ างกัน
ตารางความจริง หรือ Truth Table
การดาเนินการทางตรรกศาสตร์ ของ XOR
 เราจะหาคาตอบได้ ก็ต่อเมื่อต้องแปลงเลขฐาน 10 ให้กลายเป็ นเลขฐาน 2
(Binary) ก่อน เช่น
กาหนดตัวแปร A = 10 หรื อ กระจายเป็ นเลขฐาน 2 (Binary) = 1 0 1 0
กาหนดตัวแปร B = 8 หรื อ กระจายเป็ นเลขฐาน 2 (Binary) = 1 0 0 0
ดังนั้นเมื่อให้ A Xor B คือ
1010
1000
---------0 0 1 0 (ฐาน 2) หรื อ 2 (ฐาน 10)
=====
การดาเนินการทางตรรกศาสตร์ ของ XOR ภาษาระดับสู ง
 เวลาที่เขียนคาสัง่ 65 Xor 20 จะได้คาตอบคือ 85 (ฐาน 10) ... นี่คือ
ความสามารถของภาษาระดับสูง (ซึ่งคุณไม่มีความจาเป็ นต้องแปลงเลขฐานก่อน)
แต่แท้ที่จริ งแล้ว มันจะเกิดปฏิบัติการระดับบิตขึน้ มา โดยที่เรามองไม่เห็น ...แต่ เรา
ต้ องสนใจมัน
หมายความว่า ทั้งตัวตั้ง (65) และ ตัวกระทา (20) จะต้องถูกแปลงให้เป็ นเลขฐาน
2 ออกมาก่อน ดังนี้ คือ
1 0 0 0 0 0 1 ... หรื อ 65 (ฐาน 10)
X X 1 0 1 0 0 ... หรื อ 20 (ฐาน 10) ... ค่าใดที่มากระทา XOR กับ X
ก็จะได้ค่านั้นเสมอ
-----------------1 0 1 0 1 0 1 ... หรื อ 85 (ฐาน 10)
========
การเข้ารหัสแบบ eXclusive OR (เอ็กซ์ คลูซีฟ ออร์ - XOR)
 นี่คือการนาเอาตัวอักขระทีละตัว มาทาตรรกศาสตร์ดว้ ยวิธีการ XOR เพื่อเปลี่ยนแปลงข้อมูล ...
หรื อ เรียกว่าการเข้ ารหัส (Encryption)
หากนาตัวอักขระที่เข้ารหัส มาทาตรรกศาสตร์ดว้ ยวิธีการ XOR อีกรอบ ... เรียกว่าการถอดรหัส
(Decryption)
Vernam Cipher
เวอร์ แนมไซเฟอร์ (Vernam Cipher)
พัฒนาขึน้ ครั้งแรกที่ AT&T โดยใช้ ร่วมกับอุปกรณ์ ทชี่ ื่อว่ า เครื่องเวอร์ -แนม
(Vernam Machine) One-time Pad
ขั้นตอนวิธี
 กาหนดให้ ค่าให้ กบั อักขระแต่ ละตัวโดยเริ่มต้ นค่ าจากน้ อยไปมาก เช่ น A = 0, B
= 1, …,
Z = 25
 แทนค่ าข้ อความต้ นฉบับทีต่ ้ องการเข้ ารหัสและข้ อความนาเข้ าไซเฟอร์ จากค่ าของ
อักขระแต่ ละตัวที่กาหนดในข้ อ 1
 บวกค่ าอักขระแต่ ละตัวในข้ อความต้ นฉบับกับค่ าของอักขระแต่ ละตัวในข้ อความนาเข้ า
ไซเฟอร์
 ถ้ าผลลัพธ์ ทไี่ ด้ มากกว่ า 25, ให้ ลบออกด้ วย 26
 แปลงค่ าจานวนทีไ่ ด้ กลับเป็ นตัวอักขระทีเ่ กีย่ วข้ อง ซึ่งจะได้ เป็ นข้ อความไซเฟอร์
Vernam Cipher
 การเข้ารหัสและการถอดรหัสเพื่อให้ได้ขอ้ ความที่อ่านได้ (Plain
Text) กลับมานั้นจาเป็ นต้องใช้ตวั เลขสุ่ ม (Random
Number) โดยมากแล้ววิธีการที่ใช้ในการกาเนิ ดตัวเลขสุ่ มที่นิยมใช้กนั
มากก็คือ วิธี Linear Congruential Random
Number Generator ซึ่ งจะให้กาเนิ ดตัวเลขสุ่ มที่เริ่ มด้วยตัวเลข
เริ่ มต้นตามที่กาหนดให้ เราเรี ยกตัวเลขนี้วา่ Seed อย่างไรก็ตามวิธีการนี้ ก็
สามารถจะให้ตวั เลขสุ่ มได้จานวนหนึ่ งก่อนที่จะเริ่ มให้ตวั เลขที่ซ้ ากันอีก ดังนั้น
การใช้วธิ ี ให้กาหนดตัวเลขสุ่ มนี้กต็ อ้ งใช้ความระมัดระวังด้วยมิฉะนั้นอาจทาให้
ตัวอักษรใน Cipher Text มีลกั ษณะที่ซ้ ากันได้และจะง่ายต่อการ
วิเคราะห์ Cryptanalysis
Vernam Cipher (ต่อ)
ตัวอย่ างที่ 3.7 กาหนดให้ขอ้ ความต้นฉบับ คือ GO TO SCHOOL
และกาหนดข้อความนาเข้าไซเฟอร์ ซึ่งเป็ น One-time pad
คือ DNCBTZQRX ให้หาข้อความไซเฟอร์
 ข้อดี: มีความปลอดภัยของข้อความสู งและเหมาะสมกับข้อความ
ต้นฉบับที่มีขนาดสั้น
 ข้อเสี ย: ไม่เหมาะสาหรับข้อความต้นฉบับขนาดใหญ่
Hash Function หรื อ One-Way Function
คุณสมบัติของ Hash Function
รู ปแบบของ Hash Function
หลักการของ Hash Function
(Operation of Hash Function)
Digital Signature
หลักการ Hasn Function
 นาข้อความที่ตอ้ งการลงลายมือชื่อ(M)เป็ นข้อมูลรับเช้าของ Hash
Function (H)จะได้ผลลัพธ์เป็ น Hash Code ที่มีความ
ปลอดภัยคือ H(M) ที่มีความหมายคงที่
 นา Hash Code มาเข้ารหัสสลับด้วยกุญแจส่ วนตัวของผูส้ ่ ง
 ผูส้ ่ งส่ งข้อความและลายมือชื่อพร้อมกันไปให้ผรู ้ ับ
 ผูร้ ับนาข้อความที่ได้มาคานวณหา Hash Code
หลักการ Hasn Function(ต่อ)
 ผูร้ ับถอดรหัสสลับลายมือชื่อที่ได้รับด้วยกุญแจสาธารณะของผูส้ ่ ง
 ถ้า Hash Code มีค่าเท่ากับลายมือชื่อถอดรหัสสลับแล้วจะ
ยอมรับลายมือชื่อนั้นว่าเป็ นของจริ ง เนื่องจากผูส้ ่ งรู ้กญ
ุ แจส่ วนตัวแต่เพียง
ผูเ้ ดียว และผูส้ ่ งเท่านั้นที่สามารถสร้างลายมือชื่อที่ถูกต้องได้ Valid
Signature
อัลกอริธึมการเข้ ารหัส
 การเข้ารหัส เป็ นการใช้ อัลกอริ ทึม ที่ซบั ซ้อนในการเปลี่ยน ข้อมูลเดิม
(plaintext) ด้วยการเข้ารหัส เปลี่ยนเป็ น ข้อมูลมีผา่ นการเข้ารหัส
แล้ว(ciphertext) อัลกอริ ทึม ที่ใช้ในการ เข้ารหัส และ ถอดรหัส
ข้อมูลแล้วส่ งผ่านกันในระบบเน็กเวิร์คนั้น
จุดประสงค์ ของการเข้ ารหัสและถอดรหัส
 ผูท้ ี่ไม่ได้รับอนุญาตจะไม่สามารถเข้าถึงข้อมูลได้ หรื อ เข้าถึงข้อมูลได้ยาก
ประเภทของการเข้ ารหัส
การเข้ารหัส และ ถอดรหัส ข้อมูลแล้วส่ งผ่านกันในระบบเน็ตเวิร์คนั้น มี 2 แบบ
คือ
 การเข้ารหัสแบบสมมาตร (Symmetric key algorithms)
 การเข้ารหัสแบบอสมมาตร (Asymmetric key
algorithms)
การแบ่งประเภทขึ้นอยูก่ บั กุญแจ กุญแจ ใช้ ร่ วมกับ อัลกอริ ทึม ในการ เข้ารหัสและ
ถอดรหัส
กุญแจในที่น้ ี เปรี ยบเทียบได้กบั ลูกกุญแจ ต้องมีลกู กุญแจเท่านั้นจึงจะเปิ ดแม่กญ
ุ แจ
อ่านข้อมูลได้
ดังรู ป
การเข้ ารหัสแบบสมมาตร (Symmetric key
algorithms)
 การเข้ ารหัสแบบสมมาตร จะใช้ กญ
ุ แจลับ ในการติดต่ อกันระหว่ าง 2
คน อันเดียวกันทั้งในการ เข้ ารหัส และ ถอดรหัส
 ก่ อนทีจ่ ะส่ งข้ อมูลทีถ่ ูก เข้ ารหัส แล้ ว ผ่ านระบบเน็กเวิร์ค ทั้ง 2 กลุ่ม ต้ อง
มี กุญแจ และ อัลกอริทมึ ทีต่ กลงร่ วมกัน เพือ่ ใช้ ในการ เข้ ารหัส และ
ถอดรหัส
ปัญหาของการเข้ ารหัสแบบสมมาตร
 ปัญหาที่เกิดขึ้นในการใช้ กุญแจลับ คือ การส่ งกุญแจ ให้อีกกลุ่ม หนึ่ง
แล้วโดนดักลักลอบเอากุญแจไปโดยผูไ้ ม่ประสงค์ดี
 ถ้า นาย ก และ นาย ข ใช้การส่ งข้อมูลโดยใช้ กุญแจลับ และ นาย ค ดัก
กุญแจลับระหว่างการส่ งกุญแจ จะทาให้ นาย ค สามารถอ่าน ข้อมูล
ลับ ที่ส่งกันระหว่าง นาย ก กับ นาย ข
 ไม่เพียงแค่น้ นั นาย ค อาจจะ สามารถสร้าง ข้อมูล หลอก นาย ก ว่าเป็ น
นาย ข ได้
 ถ้าติดต่อกับหลายกลุ่ม ต้องใช้กญ
ุ แจจานวนมาก
การเข้ ารหัสแบบอสมมาตร (Asymmetric key
algorithms)
 การเข้ารหัสแบบอสมมาตร เป็ นการแก้ปัญหาโดยใช้หลักการของ กุญแจ
สาธารณะ และ กุญแจส่ วนตัว
 โดยที่ กุญแจสาธารณะ นั้นเปิ ดเผย ในระบบเน็กเวิร์ด ได้ส่วน กุญแจ
ส่ วนตัว นั้นเก็บไว้เฉพาะบุคคลเท่านั้น
 การใช้ กุญแจสาธารณะ และ กุญแจส่ วนตัว ในการเข้ารหัสนั้นเป็ นแบบ
ตรงข้ามกัน คือมีกญ
ุ แจเป็ นคู่ 2 อันคือ ใช้ กุญแจ อันหนึ่ ง เข้ารหัส ต้อง
ใช้อีกกุญแจ เพื่อทาการ ถอดรหัส เท่านั้น
ตัวอย่ าง
 นาย ข ต้ องการส่ ง ข้ อมูลลับ ให้ กบั นาย ก
 ในการเข้ ารหัส นาย ก มีคู่ของกุญแจ คือ กุญแจสาธารณะ และ กุญแจส่ วนตัว
 จากนั้น นาย ก ได้ ส่ง กุญแจสาธารณะ ของ นาย ก ไปให้ นาย ข และเก็บ กุญแจส่ วนตัวไว้ กบั
ตัวเอง
 เมือ่ นาย ข ได้ กุญแจสาธารณะ ของ นาย ก แล้ วจึงทาการเข้ ารหัส ข้ อมูลด้ วย กุญแจสาธารณะ
ของ นาย ก แล้ วทาการส่ งข้ อมูลลับให้ นาย ก
 เมือ่ นาย ก ได้ รับแล้ วทาการจึงถอดรหัส ด้ วย กุญแจส่ วนตัว ของ นาย ก จะได้ ข้ อมูล ที่ นาย
ข ต้ องการส่ งให้ นาย ก
 ถ้ า นาย ก เข้ ารหัสข้ อมูล ด้ วย กุญแจส่ วนตัว ของ นาย ก และส่ ง ข้ อมูลลับ ไปให้ นาย ข นาย
ข จะสามารถแน่ ใจได้ เลยว่ า ข้ อมูลลับ นีม้ าจาก นาย ก
 ถ้ า นาย ข สามารถ ถอดรหัส ข้ อมูลลับ ได้ ด้วย กุญแจสาธารณะ ของ นาย ก แสดงว่ า ข้ อมูลลับ
ถูก เข้ ารหัส มาด้ วย กุญแจส่ วนตัว ของ นาย ก
 นาย ก เท่ านั้นทีม่ ี กุญแจส่ วนตัว ของ นาย ก นาย ข จึงแน่ ใจได้ ว่า ข้ อมูลนีม้ าจาก นาย ก
 แต่ ปัญหาคือในกรณีนีค้ นทีม่ ี กุญแจสาธารณะ ของ นาย ก สามารถอ่ าน ข้ อมูลลับ นีไ้ ด้ เพราะ
กุญแจสาธารณะ ของ นาย ก อนุญาตให้ คนทัว่ ไปมีได้
ความแตกต่ างระหว่ าง การเข้ ารหัสทั้งสองแบบ
 การเข้ ารหัสแบบสมมาตร ข้ อมูลทาการ เข้ ารหัส และ ถอดรหัส ได้ รวดเร็ว แต่ ก่อน
จะต้ องมีการตกลงกุญแจกันก่ อน และ มีปัญหาในการแลกเปลีย่ นกุญแจ ที่ไม่ มีความ
ปลอดภัย
 การเข้ ารหัสแบบอสมมาตร การแลกเปลีย่ น กุญแจนั้นไม่ มีปัญหา เพราะ กุญแจ
สาธารณะ ไม่ เป็ นความลับ แต่ อัลกอริทึม ในการ เข้ ารหัส และ ถอดรหัส นั้น
เสี ยเวลามากทาให้ ช้า
 การเข้ ารหัสแบบสมมาตร ถ้ าต้ องการติดต่ อกับ กลุ่มหลายกลุ่มต้ องใช้ กญ
ุ แจลับหลาย
กุญแจ แต่ แบบ อสมมาตรจะใช้ แค่ กุญแจสารธารณะ และ กุญแจส่ วนตัวเท่ านั้น
 ระบบกุญแจสาธารณะต้ องใช้ เวลาในการคานวณการเข้ าและถอดรหัส เมื่อเทียบกับ
ระบบกุญแจสมมาตร และอาจใช้ เวลาเป็ นพันเท่ าของเวลาที่ใช้ โดยระบบกุญแจ
สมมาตร
ความแข็งแกร่ งของอัลกอริทึมสาหรับการเข้ ารหัส
 ความแข็งแกร่ งของอัลกอริทึมหมายถึงความยากในการที่ผู้บุกรุกจะสามารถอด รหัส
ข้ อมูลได้ โดยปราศจากกุญแจที่ใช้ ในการเข้ ารหัส ซึ่งขึน้ อยู่กบั ปัจจัยดังนี้
 การเก็บกุญแจเข้ ารหัสไว้ อย่ างเป็ นความลับ
 ความยาวของกุญแจเข้ ารหัส ยิง่ จานวนบิตของกุญแจยิง่ มาก ยิง่ ทาให้ การเดาเพือ่ สุ่ ม
หากุญแจที่ถูกต้ องเป็ นไปได้ ยากยิง่ ขึน้
 อัลกอริทึมที่ดตี ้ องเปิ ดให้ ผู้รู้ ทาการศึกษาในรายละเอียดได้ โดยไม่ เกรงว่ าผู้ศึกษาจะ
สามารถจับรู ปแบบของการเข้ ารหัสได้
 การมีประตูลบั ในอัลกอริทึม อัลกอริทึมที่ดตี ้ องไม่ แฝงไว้ ด้วยประตูลบั ที่สามารถใช้
เป็ นทางเข้ าไปสู่ อลั กอริทึม
 ความไม่ เกรงกลัวต่ อปัญหาการหาความสั มพันธ์ ในข้ อมูลที่ได้ รับ
อัลกอริทึมสาหรับการเข้ ารหัสแบบกุญแจสาธารณะ
 อัลกอริ ทึมแบบกุญแจสาธารณะ แบ่งตามลักษณะการใช้งานได้เป็ น 2
ประเภท คือ
 ใช้สาหรับการเข้ารหัส
 ใช้สาหรับการลงลายมือชื่ออิเล็กทรอนิกส์
อัลกอริทึม RSA
 อัลกอริ ทึม RSA ได้รับการพัฒนาขึ้นที่มหาวิทยาลัย MIT ในปี
1977 โดยศาสตราจารย์ 3 คน ซึ่งประกอบด้วย Ronald
Rivest, Adi Shamir และ Leonard
Adleman ชื่อของอัลกอริ ทึมได้รับการตั้งชื่อตามตัวอักษรตัวแรก
ของนามสกุลของ ศาสตราจารย์ท้ งั สามคน อัลกอริ ทึมนี้สามารถใช้ในการ
เข้ารหัสข้อมูลรวมทั้งการลงลายมือชื่อ อิเล็กทรอนิกส์ดว้ ย
อัลกอริทึมสาหรับสร้ างเมสเซสไดเจสต์
 เมสเซสไดเจสต์ (Message Digest) แปลว่าข้อความสรุ ปจาก
เนื้อหาข้อความตั้งต้น
 โดยปกติขอ้ ความสรุ ปจะมีความยาวน้อยกว่าความยาวของข้อความตั้งต้น
มาก
 จุดประสงค์สาคัญของอัลกอริ ทึมนี้คือ การสร้างข้อความสรุ ปที่สามารถใช้
เป็ นตัวแทนของข้อความตั้งต้นได้
 โดยทัว่ ไปข้อความสรุ ปจะมีความยาวอยูร่ ะหว่าง 128 ถึง 256 บิต
และจะไม่ข้ ึนกับขนาดความยาวของข้อความตั้งต้น
คุณสมบัตทิ ี่สาคัญของอัลกอริทึมสาหรับสร้ างไดเจสต์
 ทุกๆ บิตของไดเจสต์จะขึ้นอยูก่ บั ทุกบิตของข้อความตั้งต้น
 การเปลี่ยนแปลงแก้ไขข้อความตั้งต้นโดยผูไ้ ม่ประสงค์ดีแม้วา่ อาจแก้ไขเพียง เล็กน้อยก็ตาม
เช่น เพียง 1 บิตเท่านั้น ก็จะส่ งผลให้ผรู ้ ับข้อความทราบว่าข้อความที่ตนได้รับไม่ใช่
ข้อความตั้งต้น
 โอกาสที่ขอ้ ความตั้งต้น 2 ข้อความใดๆ ที่มีความแตกต่างกัน จะสามารถคานวณได้ค่าได
เจสต์เดียวกันมีโอกาสน้อยมาก
 คุณสมบัติขอ้ นี้ทาให้แน่ใจได้วา่ เมื่อผูไ้ ม่ประสงค์ดีทาการแก้ไขข้อความตั้งต้น ผูร้ ับข้อความ
ที่ถูกแก้ไขไปแล้วนั้นจะสามารถตรวจพบได้ถึงความผิดปกติที่เกิด ขึ้นอย่างแน่นอน
 อย่างไรก็ตามในทางทฤษฎีแล้ว มีโอกาสที่ขอ้ ความ 2 ข้อความที่แตกต่างกันจะสามารถ
คานวณแล้วได้ค่าไดเจสต์เดียวกัน ปัญหานี้เรี ยกกันว่าการชนกันของไดเจสต์
(Collision) nอัลกอริ ทึมสาหรับสร้างไดเจสต์ที่ดีควรจะมีโอกาสน้อยมากๆ ที่จะ
ก่อให้เกิดปัญหาการชนกันของไดเจสต์
อัลกอริทึมสาหรับสร้ างไดเจสต์ ยอดนิยมมีดังนี้
 Md2,Md3,Md4,Md5
 ผูพ้ ฒั นาคือ Ronald Rivest อัลกอริ ทึมนี้เชื่อกันว่ามีความ
แข็งแกร่ งที่สุดในบรรดาอัลกอริ ทึมต่างๆ ที่ Rivest พัฒนาขึ้นมา
 แม้จะเป็ นที่นิยมใช้งานกันอย่างแพร่ หลาย ทว่าในปี 1996 ก็มีผพู ้ บ
จุดบกพร่ องของ MD5 จึงทาให้ความนิยมเริ่ มลดลง
MD5 ผลิตไดเจสต์ที่มีขนาด 128 บิต
อัลกอริทึม SHA
 SHA ย่อจาก Secure Hash Algorithm อัลกอริ ทึม
SHA ได้รับแนวคิดในการพัฒนามาจาก MD4 และได้รับการ
พัฒนาขึ้นมาเพื่อใช้งานร่ วมกับอัลกอริ ทึม DSS
 หลังจากที่ได้มีการตีพิมพ์เผยแพร่ อลั กอริ ทึมนี้ได้ไม่นาน NIST ก็
ประกาศตามมาว่าอัลกอริ ทึมจาเป็ นต้องได้รับการแก้ไขเพิ่มเติมเล็กน้อย
เพื่อ ให้สามารถใช้งานได้อย่างเหมาะสม
อัลกอริทึม SHA-1
 SHA-1 เป็ นอัลกอริ ทึมที่แก้ไขเพิ่มเติมเล็กน้อยจาก SHA การ
แก้ไขเพิ่มเติมนี้เป็ นที่เชื่อกันว่าทาให้อลั กอริ ทึม SHA-1 มีความ
ปลอดภัยที่สูงขึ้น
SHA-1 สร้างไดเจสต์ที่มีขนาด 160 บิต
อัลกอริทึม SHA-256, SHA-384 และ SHA512
 NIST เป็ นผูน้ าเสนออัลกอริ ทึมทั้งสามนี้ในปี 2001 เพื่อใช้งาน
ร่ วมกับอัลกอริ ทึม AES (ซึ่งเป็ นอัลกอริ ทึมในการเข้ารหัสแบบ
สมมาตร)
 อัลกอริ ทึมเหล่านี้สร้างไดเจสต์ที่มีขนาด 256, 384 และ 512
บิต ตามลาดับ
การสร้ าง Public Key และ Private Key
•
ต้องส่ ง public key ให้ CA รับรองตัวตนผูใ้ ช้งาน
• การรับรอง Public key จะได้ใบรับรองอิเล็กทรอนิกส์
•
Private key ของผูใ้ ช้งานต้องเก็บไว้เพื่อใช้ในการลงนาม
โดยมีรหัสผ่านป้ องกัน ส่ วน public key เอาไว้ยนื ยัน
ตัวตนผูล้ งนาม และแลกกับบุคคลอื่นเพื่อเข้ารหัสเอกสาร
Digital Signature
 ในการส่ งข้อมูลผ่านเครื อข่าย จะทาให้ขอ้ มูลที่ส่งนั้นเป็ นความลับสาหรับผูไ้ ม่มีสิทธิ์
โดยการใช้เทคโนโลยีการรหัส และสาหรับการทานิติกรรมสัญญา ลายมือชื่ อจะเป็ น
สิ่ งที่ใช้ในการระบุตวั บุคคล (Authentication) และยังมีแสดงถึงเจตนาในการ
ยอมรับเนื้อหาในสัญญานั้นๆ รวมถึงเป็ นการป้ องกันการปฏิเสธความรับผิดชอบ
(Non-repudiation)
 สาหรับในการทาธุรกรรมทางอิเล็กทรอนิกส์ ลายมือชื่ออิเล็กทรอนิกส์
(ElectronicSignature)จะมีรูปแบบต่างๆกัน เช่นสิ่ งที่ระบุตวั บุคคลทาง
ชีวภาพ (ลายพิมพ์นิ้วมือ เสี ยง ม่านตา เป็ นต้น) หรื อ จะเป็ นสิ่ งที่มอบให้แก่บุคคล
นั้นๆในรู ปแบบของ รหัสประจาตัว ลายมือชื่ออิเล็กทรอนิกส์ที่ได้รับการยอมรับกัน
มากที่สุดอันหนึ่ง คือ ลายมือชื่อดิจิทลั (DigitalSignature) ซึ่งจะเป็ น
องค์ประกอบหนึ่งในโครงสร้างพื้นฐานกุญแจสาธารณะ (Public Key
Infrastructure, PKI)
ลายมือชื่อดิจิตอล (Digital Signature)
 ลายมือชื่อดิจิตอล (Digital Signature) หมายถึง ข้อมูล
อิเล็กทรอนิกส์ที่ได้จากการเข้ารหัสข้อมูลด้วยกุญแจส่ วนตัวของผูส้ ่ งซึ่ง
เปรี ยบเสมือนเป็ นลายมือชื่อของผูส้ ่ ง คุณสมบัติของลายมือชื่อดิจิตอล
นอกจากจะสามารถ ระบุตวั บุคคล และ เป็ นกลไกการป้ องกันการปฏิเสธ
ความรับผิดชอบแล้ว ยังสามารถป้ องกันข้อมูลที่ส่งไปไม่ให้ถูกแก้ไข หรื อ
หากถูกแก้ไขไปจากเดิมก็สามารถล่วงรู ้ได้
 อ้างอิง http://gits.nectec.or.th/services/govca/index.php
กระบวนการสร้ างและลงลายมือชื่อดิจิตอล
 เริ่ มจากการนาเอาข้อมูลอิเล็กทรนอิกส์ตน้ ฉบับที่จะส่ งไปนั้นมาผ่าน
กระบวนการทางคณิ ตศาสตร์ ที่เรี ยกว่า ฟังก์ชนั ย่อยข้อมูล (Hash
Function) เพื่อให้ได้ขอ้ มูลที่ส้ นั ๆ ที่เรี ยกว่า ข้อมูลที่ยอ่ ยแล้ว
(Digest) ก่อนที่จะทาการเข้ารหัส เนื่องจากข้อมูลต้นฉบับมักจะมี
ความยาวมากซึ่ งจะทาให้กระบวนการเข้ารหัสใช้เวลานานมาก
กระบวนการสร้ างและลงลายมือชื่อดิจิตอล (ต่ อ)
 จากนั้นจึงทาการเข้ ารหัสด้ วยกุญแจส่ วนตัวของผู้ส่งเอง ซึ่งจุดนี้
เปรียบเสมือนการลงลายมือชื่อของผู้ส่งเพราะผู้ส่งเท่ านั้นทีม่ กี ญ
ุ แจ
ส่ วนตัวของผู้ส่งเอง และ จะได้ ข้อมูลทีเ่ ข้ ารหัสแล้ ว เรียกว่ า ลายมือชื่อ
ดิจิตอล
กระบวนการสร้ างและลงลายมือชื่อดิจิตอล (ต่ อ)
 จากนั้นก็ทาการส่ ง ลายมือชื่อไปพร้ อมกับข้ อมูลต้ นฉบับ ไปยังผู้รับ ผู้รับก็จะทา
การตรวจสอบว่ าข้ อมูลที่ได้ รับถูกแก้ ไขระหว่ างทางหรือไม่ โดยการนาข้ อมูล
ต้ นฉบับที่ได้ รับ มาผ่ านกระบวนการย่ อยด้ วย ฟังก์ ชันย่ อยข้ อมูล จะได้ ข้อมูลที่
ย่ อยแล้ วอันหนึ่ง
กระบวนการสร้ างและลงลายมือชื่อดิจิตอล (ต่ อ)
 นาลายมือชื่อดิจิตอล มาทาการถอดรหัสด้ วย กุญแจสาธารณะของผู้ส่ง ก็
จะได้ ข้อมูลทีย่ ่ อยแล้ วอีกอันหนึ่ง แล้ วทาการเปรียบเทียบ ข้ อมูลทีย่ ่ อยแล้ ว
ทั้งสองอัน ถ้ าหากว่ าเหมือนกัน ก็แสดงว่ าข้ อมูลทีไ่ ด้ รับนั้นไม่ ได้ ถูกแก้ ไข
แต่ ถ้าข้ อมูลทีย่ ่ อยแล้ ว แตกต่ างกัน ก็แสดงว่ า ข้ อมูลทีไ่ ด้ รับถูก
เปลีย่ นแปลงระหว่ างทาง
ข้อพึงสังเกต
 ลายมือชื่อดิจิทลั จะแตกต่ างกันไปตามข้ อมูลต้ นฉบับและบุคคลทีจ่ ะลง
ลายมือชื่อ ไม่ เหมือนกับลายมือชื่อทั่วไปที่จะต้ องเหมือนกันสาหรับบุคคล
นั้นๆ ไม่ ขนึ้ อยู่กบั เอกสาร
 กระบวนการทีใ่ ช้ จะมีลกั ษณะคล้ายคลึงกับการเข้ ารหัสแบบอสมมาตร แต่
การเข้ ารหัสจะใช้ กุญแจส่ วนตัวของผู้ส่ง และ การถอดรหัสจะใช้ กุญแจ
สาธารณะของผู้ส่ง ซึ่งสลับกันกับ การเข้ าและถอดรหัสแบบกุญแจ
อสมมาตร ในการรักษาข้ อมูลให้ เป็ นความลับ
ใบรับรองดิจิตอล (Digital Certificate)
 ด้ วยการรหัส และ ลายมือชื่อดิจิตอล ในการทาธุรกรรม เราสามารถ รักษา
ความลับของข้ อมูล สามารถรักษาความถูกต้ องของข้ อมูล และ สามารถระบุตัว
บุคคลได้ ระดับหนึ่ง เพือ่ เพิม่ ระดับความปลอดภัยในการระบุตวั บุคคลโดยสร้ าง
ความเชื่อถือมากขึน้ ด้ วย ใบรับรองดิจิตอล (Digital
Certificate) ซึ่งออกโดยองค์ กรกลางที่เป็ นที่เชื่อถือ เรียกว่ า องค์ กร
รับรองความถูกต้ อง(Certification Authority) จะถูก
นามาใช้ สาหรับยืนยันในตอนทาธุรกรรมว่ าเป็ นบุคคลนั้นๆจริง ตามทีไ่ ด้ อ้างไว้
รายละเอียดในใบรับรองดิจิตอลทัว่ ไปมีดงั ต่อไปนี้
 ข้อมูลระบุผทู ้ ี่ได้รับการรับรอง ได้แก่ ชื่อ องค์กร ที่อยู่
 ข้อมูลระบุผอู ้ อกใบรับรอง ได้แก่ ลายมือชื่อดิจิตอลขององค์กรที่ออก
ใบรับรอง หมายเลขประจาตัวของผูอ้ อกใบรับรอง
 กุญแจสาธารณะของผูท้ ี่ได้รับการรับรอง
 วันหมดอายุของใบรับรองดิจิตอล
 ระดับชั้นของใบรับรองดิจิตอล ซึ่งมีท้ งั หมด 4 ระดับ ในระดับ 4 จะมี
กระบวนการตรวจสอบเข้มงวดที่สุด และ ต้องการข้อมูลมากที่สุด
 หมายเลขประจาตัวของใบรับรองดิจิตอล
ประเภทของใบรับรองดิจิตอลยังแบ่งออกเป็ น 3 ประเภท
 ใบรับรองเครื่องแม่ ข่าย (Server Certificate Service) บริการ
ใบรับรองอิเล็กทรอนิกส์ สาหรับเครื่องให้ บริการ
 ใบรับรองตัวบุคคล (Personal Certificate Service) บริการ
ใบรับรองอิเล็กทรอนิกส์ สาหรับบุคคล
 ใบรับรองสาหรับองค์ รับรองความถูกต้ อง(CA Hosting/Virtual CA
Service) บริการรับฝากระบบบริการใบรับรองอิเล็กทรอนิกส์
สิ่ งที่ได้ จากการใช้ งานใบรับรองอิเล็กทรอนิกส์
 การพิสูจน์ ตัวจริง (Authentication) : เป็ นการระบุตวั ตนที่แท้จริ ง
ของผูส้ ่ งข้อมูลอิเล็กทรอนิกส์
 การรักษาความครบถ้ วนของข้ อมูล (Data Integrity) : สามารถ
ตรวจสอบได้วา่ ข้อมูลที่ได้รับนั้น มีความถูกต้องครบถ้วนและไม่ถกู เปลี่ยนแปลง
แก้ไข
 การรักษาความลับของข้ อมูล (Data Confidentiality) : เพื่อ
ป้ องกันมิให้ขอ้ มูลถูกเปิ ดเผยโดยบุคคลซึ่งมิได้รับอนุญาตหรื อไม่มีสิทธิ
 การห้ ามปฏิเสธความรับผิด (Non-repudiation) : เป็ นการป้ องกัน
ไม่ให้บุคคลผูส้ ่ งปฏิเสธว่าตนไม่ได้ส่งข้อมูลอิเล็กทรอนิกส์
 อ้างอิง


รู ปแสดงตัวอย่ างใบรับรองอิเล็กทรอนิกส์
อ้างอิง:http://gits.nectec.or.th/services/govca/index.php
ระบบเข้ารหัสแบบผสม Hybrid Cryptography System
 เนื่องจากการเข้ ารหัสแบบสมมาตรและแบบอสมมาตรมีข้อดีและข้ อเสี ย
ต่ างกัน จึงเกิดแนวคิดทีจ่ ะนาข้ อดีของทั้งสองระบบมาใช้ ทาให้ เกิดระบบที่
เรียกว่ าระบบผสมผสาน (Hybrid System) ขึน้ ดังตัวอย่าง
ระบบเข้ารหัสแบบผสม Hybrid Cryptography System
CTM = Cipher Text Message
CTk = Cipher Text Key
ระบบเข้ารหัสแบบผสม Hybrid Cryptography System
 ข้อความที่ยงั ไม่มีการเข้ารหัสที่ Alice ต้องการส่ งให้ Bob
 Alice ทาการเข้ารหัสข้อความโดยใช้ Symmetric Key ของ Alice
เอง
 Alice ได้ขอ้ ความที่เข้ารหัสแล้ว (CTM) ส่ งให้ Bob
 Alice นา Public Key ของ Bob มาเข้ารหัส Symmetric
Key ของ Alice
 Alice ได้ Symmetric Key ของ Alice ที่เข้ารหัสแล้ว (CTk)
ส่ งให้ Bob
ระบบเข้ารหัสแบบผสม Hybrid Cryptography System
 Bob ได้รับข้อความที่เข้ารหัสแล้ว (CTM) และ Symmetric
Key ของ Alice ที่เข้ารหัสแล้ว (CTk) จาก Alice
 Bob นา Private Key ของตนเองมาถอดรหัส
Symmetric Key ของ Alice
 Bob นา Symmetric Key ของ Alice มาถอดรหัสข้อความ
ที่เข้ารหัสโดย Symmetric Key ของ Alice
 Bob ได้รับข้อความต้นฉบับของ Alice
สรุ ป
 จะเห็นว่าจากตัวอย่างสามารถนาข้อดีของการเข้ารหัสแบบสมมาตรใน
เรื่ องความเร็ วและข้อดีของการจัดการ Key ของการเข้ารหัสแบบ
อสมมาตรมาใช้ดว้ ยกันทาให้ก่อเกิดประโยชน์สูงสุ ด
โปรโตคอลรักษาความปลอดภัยในการติดต่อสื่ อสารข้อมูล
 โปรโตคอล Secure Socket Layer (SSL)
การรักษาความปลอดภัยให้กบั ข้อมูลข่าวสารเป็ นสิ่ งที่จาเป็ น เพื่อป้ องกัน
ความผิดพลาดที่อาจจะส่ งผลให้การติดต่อสื่ อสารล้มเหลว โดยทัว่ ไปจะ
ใช้หลักการรักษาความปลอดภัยของข้อมูลในรู ปแบบ RSA โดยใช้
โปรโตคอล SSL เป็ นหลัก
 เป็ นการรักษาความปลอดภัย ที่ใช้อลั กอริ ธึมทางคณิ ตศาสตร์ที่มีรูปแบบ
การคานวณที่เข้าใจง่ายแต่มีความปลอดภัยสู ง
ความเป็ นมาของโปรโตคอล SSL
 โปรโตคอล SSL เริ่ มพัฒนาโดย Netscape Communications เพื่อ
ใช้กบั โปรโตคอลระดับ แอพพลิเคชัน คือ Hypertext Transfer Protocol
(HTTP) สาหรับการสื่ อสารผ่านเว็บให้มีความปลอดภัย โดยมีการพัฒนาในยุคต้น
ของยุคการค้าอิเล็กทรอนิกส์ที่กาลังได้รับความนิยม
การเข้ารหัสด้วยโปรโตคอล SSL นั้นมี 2 แบบคือ
 การเข้ารหัสแบบ 40 bits
 กับการเข้ารหัสแบบ 128 bits
หลักการของการทางานของโปรโตคอล SSL
 จะมีการเข้ารหัสข้อมูลในฝั่งเครื่ องไคลเอ็นต์ โดยเว็บบราวเซอร์จะเป็ นตัว
เข้ารหัสข้อมูล โดยบราวเซอร์จะใช้ Public key จากฝั่งเซิร์ฟเวอร์มา
เข้ารหัสกับ Master key ที่บราวเซอร์สร้างขึ้นมาเอง
 จากนั้นก็ใช้คียพ์ วกนี้เข้ารหัสข้อมูลก่อนส่ งไปให้เซิร์ฟเวอร์ เมื่อเซิร์ฟเวอร์
ได้รับข้อมูลที่ถูกเข้ารหัสจากฝั่งเครื่ องไคลเอ็นต์ มันก็จะทาการถอดรหัส
ข้อมูลนั้นกลับมาเป็ นข้อมูลปกติ
 โปรโตคอล SSL อนุญาตให้สามารถเลือกวิธีการในการเข้ารหัส วิธี
สร้างไดเจสต์ และลายเซ็นดิจิตอลได้อย่างอิสระก่อนการสื่ อสารจะเริ่ มต้น
ขึ้น ตามความต้องการของทั้งเว็บเซิร์ฟเวอร์และบราวเซอร์ มีวตั ถุประสงค
คือ
 เพื่อเพิ่มความยืดหยุน่ ในการใช้งาน
 เปิ ดโอกาสให้ทดลองใช้วิธีการในการเข้ารหัสวิธีใหม่
 ลดปัญหาการส่ งออกวิธีการเข้ารหัสไปประเทศที่ไม่อนุญาต
ขั้นตอนการทางานของโปรโตคอล SSL
แบ่งได้เป็ น 4 ขั้นตอนคือ
 วิธีการเข้ารหัส ไดเจสต์ และลายเซ็นดิจิตอลที่สนับสนุนของทั้งไคลเอ็นต์
และเซิ ร์ฟเวอร์
 การพิสูจน์ ตัวตนของเซิ ร์ฟเวอร์ ต่อไคลเอ็นต์
 การพิสูจน์ ตัวตนของไคลเอ็นต์ ต่อเซิ ร์ฟเวอร์
 ขัน้ ตอนการตรวจสอบ
วิธีการเข้ ารหั ส ไดเจสต์
 ชุดไคลเอ็นต์และเซิร์ฟเวอร์จะส่ งข้อความเริ่ มต้นการสื่ อสาร (Hello
message) ซึ่งประกอบไปด้วยเวอร์ชนั ของโปรโตคอลที่ใช้ วิธีการเข้ารหัสที่
เว็บเซิร์ฟเวอร์และไคลเอ็นต์สนับสนุน หมายเลขระบุการสื่ อสาร (Session
identifier) รวมถึงวิธีการบีบอัดข้อมูลในการสื่ อสารที่สนับสนุน
 หมายเลขระบุการสื่ อสารที่เกิดขึ้น จะใช้สาหรับตรวจสอบการเชื่อมต่อระหว่าง
ไคลเอ็นต์และเซิร์ฟเวอร์ ถ้ามีการเชื่อมต่อก่อนหน้านี้เกิดขึ้น แสดงว่าได้มีการตกลง
วิธีการสื่ อสารแล้ว สามารถเริ่ มต้นส่ งข้อมูลได้ทนั ที เป็ นการลดเวลาติดต่อสื่ อสารลง
2.การพิสูจน์ ตัวตนของเซิ ร์ฟเวอร์ ต่อไคลเอ็นต์
 เว็บเซิร์ฟเวอร์ทาการส่ ง Certificate หรื อใบยืนยันความมีตวั ตน
ของเซิร์ฟเวอร์ ไคลเอ็นต์จะทาการตรวจสอบ Certificate กับผู ้
ให้บริ การ Certificate Authority ที่ได้ต้ งั ค่าไว้ เพื่อ
ยืนยันความถูกต้องของ Certificate ของเซิร์ฟเวอร์
การพิสูจน์ ตัวตนของไคลเอ็นต์ ต่อเซิ ร์ฟเวอร์
 เซิร์ฟเวอร์สามารถร้องขอ Certificate จากไคลเอ็นต์ เพื่อ
ตรวจสอบความถูกต้องของไคลเอ็นต์ดว้ ยก็ได้ ใช้ในกรณี ที่มีการจากัดการ
ใช้งานเฉพาะไคลเอ็นต์ที่ตอ้ งการเท่านั้น ซึ่ง SSL สนับสนุนการ
ตรวจสอบได้จากทั้งเซิร์ฟเวอร์และไคลเอ็นต์ ขึ้นอยูก่ บั การเลือกใช้งาน
ในขณะติดต่อสื่ อสารที่เกิดขึ้นนั้น
ขัน้ ตอนการตรวจสอบ
 ขั้นตอนนี้จะทาการตรวจสอบ Certificate ที่เซิร์ฟเวอร์ร้องขอ
จากไคลเอ็นต์จะมีหรื อไม่มี ขึ้นอยูก่ บั การตั้งค่าบนเซิร์ฟเวอร์ หลังจาก
ขั้นตอนการตรวจสอบเสร็ จสิ้ น เซิร์ฟเวอร์และไคลเอ็นต์จะตกลงการใช้
งานวิธีการเข้ารหัสระหว่างกัน โดยใช้ค่าที่ได้จากการประกาศในขั้นตอน
แรก
วิธีการแลกเปลี่ยนกุญแจในการเข้ารหัส (Key exchange method)
 การกาหนดกลไกการแลกเปลี่ยนกุญแจที่ใช้ในการเข้ารหัสระหว่างการ
สื่ อสาร โดยทั้งไคลเอ็นต์และเซิร์ฟเวอร์จะใช้กญ
ุ แจนี้ในการเข้ารหัสและ
ถอดรหัสข้อมูล
 SSL เวอร์ชนั 2.0 จะสนับสนุนวิธีการแลกเปลี่ยนกุญแจแบบ
RSA
 SSL เวอร์ชนั 3.0 ขึ้นไปจะสนับสนุนวิธีการอื่นๆ เพิ่มเติมเช่นการ
ใช้ RSA ร่ วมกับการใช้ Certificate หรื อ DiffieHellman เป็ นต้น
วิธีการเข้ ารหัส แบ่ งได้ 2 วิธี
 การใช้กญ
ุ แจเดียวกันในการเข้ารหัสและถอดรหัส Session key
หรื อ Secret key
 การใช้กญ
ุ แจคนละตัวในการเข้ารหัสและถอดรหัส ประกอบด้วยกุญแจ
สาธารณะและกุญแจส่ วนตัวซึ่งเป็ นคู่กนั เสมอ เข้ารหัสด้วยกุญแจใด
จะต้องถอดรหัสด้วยกุญแจที่คู่กนั และตรงกันข้ามเท่านั้น
มักใช้วิธีการเข้ารหัสด้วยกุญแจคนละตัวมาใช้ในการเข้ารหัส
Session key และส่ งไปให้ฝั่งตรงข้ามก่อนการสื่ อสารจะเกิดขึ้น
เรี ยกว่า วิธีการแลกเปลี่ยนกุญแจในการเข้ารหัส
สรุ ป
 SSL ใช้วิธีการเข้ารหัสด้วยกุญแจสมมาตร หรื อกุญแจเดียวในการ
เข้ารหัสและถอดรหัส วิธีการเข้ารหัสคือ การเข้ารหัสด้วย DES และ
3DES (Data Encryption Standard), วิธีการ
เข้ารหัสด้วย IDEA ส่ วน RC2 และ RC4 เป็ นวิธีการเข้ารหัส
ของ RSA รวมถึงวิธีการเข้ารหัสแบบ Fortezza สาหรับความ
ยาวของการเข้ารหัสที่ใช้คือ 40 บิต, 96 บิต และ 128 บิต
สรุ ป(ต่อ)
 การสร้าง Message Authentication Code
(MAC) เพื่อใช้สาหรับการยืนยันความถูกต้องของข้อมูลระหว่างการ
สื่ อสารและป้ องกัน การปลอมข้อมูล ส่ วนฟังก์ชนั สร้างไดเจสต์ที่ SSL
สนับสนุนและเลือกใช้ได้ในปัจจุบนั คือ MD5 ขนาด 128 บิต และ
SHA-1 (Secure Hash Algorithm) ขนาด 160
บิต
 ซึ่งจะได้วิธีการที่ท้ งั สองฝ่ ายสนับสนุนและเหมาะสมซึ่งเป็ นขั้นตอน
สุ ดท้าย ก่อนการสื่ อสารที่มีการเข้ารหัสจะเริ่ มต้นขึ้น
สรุ ป(ต่อ)
 การรักษาความมัน่ คงปลอดภัยของระบบคอมพิวเตอร์ การเก็บรักษาข้อมูลให้ปลอดภัยจึง
เป็ นสิ่ งสาคัญกับตัวบุคคลและองค์กร เพราะฉะนั้นการที่จะอนุญาตให้บุคคลใดบุคคล
หนึ่งสามารถเข้าถึงข้อมูลจึงเป็ นสิ่ งที่ควรระมัดระวัง
 การพิสูจน์ตวั ตนมีความสาคัญต่อการรักษาความมัน่ คงปลอดภัยของระบบคอมพิวเตอร์
และสารสนเทศ เนื่องจากว่าการที่บุคคลใดบุคคลหนึ่งจะเข้าสู่ระบบได้ จะต้องได้รับการ
ยอมรับว่าได้รับอนุญาตจริ ง การตรวจสอบหลักฐานจึงเป็ นขั้นตอนแรกก่อนอนุญาตให้
เข้าสู่ระบบ การยืนยันตัวตนยิง่ มีความซับซ้อนมาก ความปลอดภัยของข้อมูลก็มีมากขึ้น
ด้วย
 อ้างอิง:
http://thaiwinadmin.blogspot.com/2008/02/ssl-protocol.html
การโจมตีระบบรหัสลับ
การโจมตีระบบรหัสสับ สามารถแบ่งดังนี้
 1. การโจมตีตวั แปลงรหัสโดยการลองถอดรหัสลับด้วยกุญแจทุกๆ
รู ปแบบว่า การค้นหาอย่างละเอียด หรื อการโจมตีแบบตะลุย (Bruteforce Attack) ในทางปฏิบตั ิ ถ้าเลือกใช้การโจมตีในลักษณะนี้
ฟังก์ชนั การทางานที่จาเป็ นต้องใช้ในการถอดรหัสลับจะมีค่าเพิ่มมากขึ้น
เป็ นแบบ เลขชี้กาลัง (Exponentially Increase) เมื่อเทียบกับ
ขนาดที่ใหญ่ข้ ึนของตัวกุญแจ ฟังก์ชนั การทางานที่แสดงในรู ปของ
ระยะเวลาเฉลี่ยที่ตอ้ งใช้ในการโจมตี แบบตะลุยที่กญ
ุ แจขนาดต่างๆ กัน
การโจมตีระบบรหัสลับ (ต่อ)
 2.การโจมตีดว้ ยการวิเคราะห์รหัสลับ (Cryptoanalysis) แบ่งได้
เป็ น 4 แบบดังนี้
2.1. การโจมตีขอ้ ความรหัสเท่านั้น (Ciphertext-only
Attack) ในการโจมตีประเภทนี้ ผูโ้ จมตีสามารถเข้าถึงข้อความรหัสที่
เกิดจากข้อความต้นฉบับหลายๆ ข้อความได้ โดยทุกๆ ข้อความต้นฉบับ
จะมาจากการเข้ารหัสลับโดยใช้อลั กอริ ทึมตัวเดียวกัน สิ่ งที่ผโู ้ จมตี
ต้องการจากการโจมตีประเภทนี้กค็ ือปริ มาณการกูค้ ืน (Recover)
ข้อความต้นฉบับจากข้อความรหัสที่มากที่สุด หรื อการค้นหาเพื่อให้
ได้มาซึ่งกุญแจที่ใช้ในการถอดรหัสลับ
การโจมตีระบบรหัสลับ (ต่อ)
 2.2. การโจมตีที่รู้ขอ้ ความต้นฉบับ (Known Plaintext
Attack) ในการโจมตีประเภทนี้ ผูโ้ จมตีไม่เพียงแต่สามารถเข้าถึง
ข้อความรหัสที่เกิดจากข้อความต้นฉบับหลายๆ ข้อความได้ แต่ยงั สามารถ
เข้าถึงข้อความต้นฉบับเหล่านั้นได้อีกด้วย สิ่ งที่ผโู ้ จมตีตอ้ งการจากการ
โจมตีประเภทนี้กค็ ือ การค้นหาเพื่อให้ได้มาซึ่งกุญแจที่ใช้ในการถอดรหัส
ลับ หรื ออัลกอริ ทึมตัวใหม่ที่ใช้ในการถอดรหัสลับจากข้อความรหัสที่
ผ่านการ เข้ารหัสลับด้วยกุญแจตัวเดียวกัน
การโจมตีระบบรหัสลับ (ต่อ)
 2.3. การโจมตีขอ้ ความต้นฉบับแบบเลือกได้ (Chosen
Plaintext Attack) ในการโจมตีประเภทนี้ ผูโ้ จมตีไม่เพียงแต่
สามารถเข้าถึงข้อความต้นฉบับและข้อความรหัสสมนัยหลายๆ ข้อความ
ได้ แต่ยงั สามารถเลือกข้อความต้นฉบับในรู ปแบบที่กาหนด เพื่อใช้ในการ
เข้ารหัสลับได้อีกด้วย สิ่ งที่ผโู ้ จมตีตอ้ งการจากการโจมตีประเภทนี้กค็ ือ
การค้นหาเพื่อให้ได้มาซึ่งกุญแจที่ใช้ในการถอดรหัสลับ หรื ออัลกอริ ทึมที่
ใช้ในการถอดรหัสลับจากข้อความรหัสที่ผา่ นการ เข้ารหัสลับด้วยกุญแจ
ตัวเดียวกัน
การโจมตีระบบรหัสลับ (ต่อ)
 2.4. การโจมตีขอ้ ความรหัสแบบเลือกได้ (Chosen Cipher
text Attack) ในการโจมตีประเภทนี้ ผูโ้ จมตีสามารถเลือกข้อความ
รหัสใดๆ เพื่อใช้ในการถอดรหัสลับ และยังสามารถเข้าถึงข้อความต้นฉบับ
สมนัยภายหลังการถอดรหัสลับนั้นๆ ได้ สิ่ งที่ผโู ้ จมตีตอ้ งการจากการโจมตี
ประเภทนี้กค็ ือ การค้นหาเพื่อให้ได้มาซึ่งกุญแจที่ใช้ในการถอดรหัสลับ การ
โจมตีประเภทนี้มีประสิ ทธิภาพสู ง
 อ้างอิง: http://www.lib.kmutt.ac.th/st4kid/nonFlash/services/getText.jsp?id=194
แหล่งอ้างอิง













http://www.nmd.go.th/itnmd/index.php?topic=11.0
http://www.ku.ac.th/e-magazine/august44/it/encryp.html
http://www.burapaprachin.ac.th/network/Page905.htm
www.vcharkarn.com/varticle/1075
อ.ชุมศักดิ์ แสงศรี คา โปรแกรมวิชาเทคโนโลยีสารสนเทศ วิทยาศาสตร์และเทคโนโลยี มหาวิทยาลัยราชภัฏสุ ราษฎร์ธานี
http://www.ajkusuma.com/BCOM3602/docs/chapter4.pdf
http://scitech.rmutsv.ac.th/comtech/Student/Information_Theory/?p=61
Wacharapong Yawai,Max Savings (Thailand) Co., Ltd.
www.maxsavings.co.th,www.cryptbot.com
http://mail.hu.ac.th/~s3152024/digital.htm
http://gits.nectec.or.th/services/govca/index.php
http://jwatchara.blogspot.com/2008/09/cryptography.html
http://www.mmtc.egat.co.th/lib1/another005.html

http://thaiwinadmin.blogspot.com/2008/02/ssl-protocol.html
 http://www.lib.kmutt.ac.th/st4kid/nonFlash/services/getText.jsp?id
=194