วันพฤหัสบดีที่ 15 มกราคม พ.ศ. 2552

ระบบการรักษาความปลอดภัย

การเข้ารหัส (encryption)
คือ การเปลี่ยนข้อความที่สามารถอ่านได้ (plain text) ไปเป็นข้อความที่ไม่สามารถอ่านได้ (cipher text) เพื่อเหตุผลด้านความปลอดภัย ปัจจุบันการเข้ารหัสมี 2 รูปแบบคือ[แก้] ประโยชน์ของการเข้ารหัสการเข้ารหัสนั้น นอกจากเป็นการทำให้ข้อมูลถูกสับเปลี่ยนเพื่อไม่ให้ผู้อื่นสามารถเข้าใจ และใช้ประโยชน์จากข้อมูลนั้นได้แล้ว การเข้ารหัสยังมีประโยชน์ในด้านอื่นๆ อีก เช่น สามารถนำมาประยุกต์ใช้ในการตรวจสอบว่าผู้ที่กำลังใช้เครือข่ายคอมพิวเตอร์ หรือทำรายการบนเว็บเพจเป็นผู้ที่เราต้องการติดต่อจริง ไม่ใช่ผู้อื่นที่แอบอ้างเข้ามาใช้ระบบ นอกจากนี้ยังสามารถนำไปใช้เป็นลายเซ็นดิจิตอลในการระบุ หรือยืนยันว่าอีเมล์หรือแฟ้มข้อมูลที่ส่งไปให้ผู้อื่นนั้นมาจากเราจริงๆ ได้อีกด้วยวิธีการเข้ารหัสมีความสำคัญต่อ 3 ส่วนหลักของระบบการค้าทางอิเล็กทรอนิกส์ คือ1. ระบบตรวจสอบว่าเป็นเอกสารจริง (Authentication)2. การพิสูจน์หลักฐานว่าได้กระทำการรายการจริง (Non-Repudiation)3. การรักษาสิทธิส่วนตัว (Privacy)นอกจากนี้การเข้ารหัสยังนำไปใช้ในการตรวจสอบการแสดงตัว (Identification) ซึ่งอยู่ในการทำ Authentication โดยใช้พิสูจน์ว่าคนที่ส่งหรือรับข้อมูลนั้นเป็นบุคคลที่เขาอ้างตัวจริงๆ และยังสามารถตรวจสอบไปอีกขั้นว่าข้อมูลที่ส่งมานั้นได้ถูกดัดแปลงโดยผู้อื่นก่อนถึงมือเราหรือไม่สำหรับในเรื่องของการพิสูจน์หลักฐานว่าได้กระทำรายการจริง (Non-Repudiation) จะมีความสำคัญอย่างมากต่อการทำรายการทางธุรกิจ เนื่องจากจะใช้เป็นหลักฐานป้องกันการปฏิเสธในภายหลังว่าไม่ได้เป็นผู้ส่ง / รับ แฟ้มข้อมูล หรือไม่ได้ทำรายการทางธุรกิจนั้นๆ[แก้] การเข้ารหัสแบบสมมาตรการเข้ารหัสแบบสมมาตรจะใช้กุญแจตัวเดียวกันสำหรับการเข้าและถอดรหัส อัลกอริทึมที่ได้รับความนิยมได้แก่ DES, AES, IDEAยกตัวอย่างการเข้ารหัสของ Caesar cipher (รหัสของซีซาร์) เช่น ต้องการเข้ารหัสคำว่า CAT โดยมีคีย์คือ 3 วิธีเข้ารหัสทำได้โดย นับขึ้นไป 3 ตัวอักษร ดังนั้นC กลายเป็น D E FA กลายเป็น B C DT กลายเป็น U V Wผลลัพธ์จากการเข้ารหัสคือ คำว่า FDW เมื่อจะถอดรหัส ก็ให้นับย้อนกลับ 3 ตัวอักษรF กลายเป็น E D CD กลายเป็น C B AW กลายเป็น V U Tได้ผลลัพธ์จากการถอดรหัสคือ CAT เหมือนเดิม ซึ่งจะเห็นได้ว่าคีย์ที่ใช้เข้าและถอดรหัสคือ 3 เหมือนกัน[แก้] การเข้ารหัสแบบอสมมาตรการเข้ารหัสแบบอสมมาตรจะใช้กุญแจตัวหนึ่งสำหรับการเข้ารหัส และกุญแจอีกตัวหนึ่งสำหรับการถอดรหัส กุญแจที่ใช้เข้ารหัสเป็นกุญแจที่เปิดเผยสู่สาธารณชน นั่นคือใครๆก็สามารถใช้กุญแจนี้เพื่อเข้ารหัสได้ แต่ถ้าการถอดรหัสจะต้องใช้กุญแจอีกดอกหนึ่งที่ไม่เปิดเผย อัลกอริทึมที่ได้รับความนิยมได้แก่ RSAตัวอย่าง ให้นึกถึงหน้าปัดนาฬิกาที่มีเลข 12 ตัวเรียงกันเป็นวงกลม ต้องการส่งเลข 4 ไปให้เพื่อนโดยการเข้ารหัสโดยใช้คีย์เท่ากับ 7ให้นับตามเข็มนาฬิกาไป 7 ครั้ง -- จาก 4 นับ 5, 6, 7, 8, 9, 10, 1111 คือเลขที่ถูกเข้ารหัสแล้วเมื่อต้องการถอดรหัส ให้นำ 11 มานับตามเข็มนาฬิกา 5 ครั้ง -- จาก 11 นับ 12, 1, 2, 3, 4ก็จะได้เลข 4 กลับมาเหมือนเดิม ซึ่งคีย์ในที่นี้คือ 7 และ 5 นั่นเอง มีความสัมพันธ์กันคือ 7+5 = 12 ตามจำนวนตัวเลขในนาฬิกาเขียนแบบคณิตศาสตร์plain text = 4เข้ารหัสเลข4 ด้วยคีย์ตัวแรกคือ 7 ได้แก่ 4+7 mod 12 = 11คำนวณคีย์อีกตัว คือ 12 - 7 = 5 ถอดรหัสเลข11 ด้วยคีย์ตัวที่สองคือ 5 ได้แก่ 11+5 mod 12 = 4

การถอดรหัสConvolution ด้วย Viterbi Algorithmการถอดรหัส Convolution
นั้นมีขั้นตอนที่ซับซ้อนกว่าวิธีการเข้ารหัสมาก ซึ่งการถอดรหัสมีหลายวิธีแต่การถอดรหัสด้วย Viterbi Algorithm นั้นเป็นวิธีที่ให้ประสิทธิภาพสูง ซึ่งลักษณะการทำงานของ Viterbi Algorithm เป็นแบบ Maximum Likelihood Decoding โดยผลลัพธ์ที่ได้จากการถอดรหัสจะเป็นเส้นทางเพียงเส้นทางเดียวที่มีความน่าจะเป็นสูงสุดจากเส้นทางทั้งหมดใน Trellis Diagram ซึ่งมีลักษณะเหมือนกับข้อมูลที่ถูกส่งมากที่สุด โดย Viterbi Algorithm นั้น มีขั้นตอนในการทำงานแบ่งเป็น 3 ขั้นตอน [3] ดังต่อไปนี้ขั้นตอนที่ 1 Branch Metric Generationขั้นตอนนี้คำนวณหาค่า Branch Metric (BM) จากข้อมูลอินพุตที่รับเข้ามา r กับค่าเอาต์พุตของการเข้ารหัส C การคำนวณหาค่า Branch Metric ต้องคำนวณทุกๆ สาขาหรือ Branch โดย Branch เท่ากับ 2K การคำนวณหาค่า Branch Metric แสดงดังการถอดรหัส (Decoding)การถอดรหัส หมายถึงการอ่านหรือแปลงเลขจากอินพุตระบบหนึ่งให้แสดงเลขอินพุตนั้นออกมาเป็นเลขอีกระบบหนึ่ง หลักการออกแบบและการนำไอซีถอดรหัสไปใช้งาน สิ่งแรกที่ควรรู้คือ ตารางการทำงานหรือหน้าที่การทำงาน (Function Table) ของไอซีเบอร์นั้นๆ เพราะจะทำให้ทราบถึงสภาพการทำงานที่ต้องการ ตัวอย่างในตารางที่ 1 เป็นตารางการทำงานของวงจรถอดรหัสที่มี 3 อินพุตและมี 8 เอาท์พุตหรือเรียกว่า “Octal Decoder (3-line-to-8-line)” โดยมีเอาท์พุตให้เลือกใช้ 2 แบบ คือ แอกทีฟ 1 (High) และแอกทีฟ 0 (Low) ซึ่งในตารางที่ 1 (ก) เป็นเอาท์พุตแบบแอกทีฟ 1 (Action High) หมายถึงเอาท์พุตที่ถูกเลือกจะแสดงค่าลอจิก 1 นอกนั้นจะเป็นลอจิก 0 ส่วนตารางที่ 1 (ข) เป็นเอาท์พุตแบบแอกทีฟ 0 (Action Low) หมายถึง เอาท์พุตที่ถูกเลือกจะแสดงค่าลอจิก 0 นอกนั้นเป็นลอจิก 1โดย ค่า BM แทนค่า Branch Metric ระหว่าง State i ไปยัง State j ณ เวลา n ค่า r แทนค่า ข้อมูลอินพุตที่รับเข้ามา ณ เวลา n ค่า C แทนค่าเอาต์พุตของการเข้ารหัสระหว่าง State i ไปยัง State j ณ เวลา nขั้นตอนที่ 2 Survivor Path และ Path Metric Updateขั้นตอนนี้คำนวณหาค่า Survivor Path และ Path Metric จากจำนวน State การทำงานทั้งหมดค่า Path Metric ที่เลือกไว้เพื่อใช้ในการหาค่า Path Metric ครั้งต่อไป (Update) ส่วนค่า Survivor Path เป็นค่าที่ใช้ในการตัดสินใจหาค่าเอาต์พุต โดยการคำนวณหาค่า Survivor Path และ Path Metric นั้นค่าของ Branch Metric และ Path Metric จะถูกเข้าด้วยกัน ซึ่งผลการบวกนั้นมีสองค่าที่เข้ามาในแต่ละจุดเชื่อมต่อ (Trellis Node) ของ Trellis Diagram โดยค่า Path Metric เป็นค่าที่เลือกจากค่าผลบวกที่น้อยกว่า ส่วนค่า Survivor Path เป็น State การทำงานที่น้อยกว่าจากการเลือก Path Metric ซึ่งแสดงดัง(2)โดย ค่า PM แทน Path metric ระหว่าง State i ไปยัง State j ณ เวลา n ค่า C แทนค่าเอาต์พุตของการเข้ารหัสระหว่าง State i ไปยัง State j ณ เวลา nขั้นตอนที่ 3 Optimum Paths Trace Backขั้นตอนนี้เป็นขั้นตอนการตัดสินใจหาค่าเอาต์พุต โดยใช้ค่า Survivor Path ในแต่ละ State ที่บันทึกไว้มาตัดสินใจเลือกเส้นทางของข้อมูล โดยการตัดสินใจหาเส้นทางของข้อมูลจะเริ่มจาก Survivor Path ในอดีต (Trace Back) โดยในการเริ่มต้นที่เวลาผ่านไป L (Latency) โดยในทางปฏิบัติการ L ต้องมีค่ามากกว่าห้าเท่าของค่า K (Constrain Length) จึงทำให้การถอดรหัสได้ข้อมูลที่ถูกต้องสูงรูปแบบการทำงานของการถอดรหัสด้วยวิธี Viterbi มีสองแบบ ได้แก่ Hard Decision และ Soft Decision ซึ่งอธิบายได้ดังนี้คือ การทำงานของวงจรถอดรหัสแบบ Hard Decision นั้น ข้อมูลอินพุตที่รับจากส่วนของมอดูเลชั่นที่ถูกจัดระดับเป็นสองระดับคือ “0” และ “1” ต่ออินพุตหนึ่งบิต ส่วนของการทำงานของวงจรถอดรหัสแบบ Soft Decision นั้น ข้อมูลอินพุตที่รับจากส่วนของมอดูเลชันที่ถูกจัดระดับมากกว่าสองระดับต่ออินพุตหนึ่งบิต เช่น 4 ระดับ (2 บิต) หรือ 8 ระดับ (3 บิต) เป็นต้น การทำงานแบบ Soft Decision จะมีความซับซ้อนมากกว่าแบบ Hard Decision แต่ให้ค่า Coding Gain ที่มากกว่า โดยการทำงานแบบ Hard Decision นั้นใช้สำหรับช่องสัญญาณแบบ Binary Symmetric หรือ Discrete Memoryless Channel ส่วนทำงานแบบ Soft Decision นั้นเหมะสมกับช่องสัญญาณแบบ AWGN (Additive White Gaussian Noise) ซึ่งการทำงานแบบ Soft Decision นั้นให้ค่า Coding Gain ที่มากกว่าแบบ Hard Decision ประมาณ 2 dB [4]

ไม่มีความคิดเห็น: