กลับไปหน้าบทความ

อ่าน 8 นาที

ทฤษฎีการเข้ารหัส

ทฤษฎีการเข้ารหัสคือการศึกษาคุณสมบัติของรหัสและความเหมาะสมของรหัสแต่ละประเภทสำหรับการใช้งานเฉพาะด้าน รหัสถูกนำมาใช้ในการบีบอัดข้อมูลการเข้ารหัสลับการ ตรวจจับ

ทฤษฎีการเข้ารหัส

ภาพแสดง ระยะทางแฮมมิงแบบสองมิติซึ่งเป็นมาตรวัดที่สำคัญในทฤษฎีการเข้ารหัส

ทฤษฎีการเข้ารหัสคือการศึกษาคุณสมบัติของรหัสและความเหมาะสมของรหัสแต่ละประเภทสำหรับการใช้งานเฉพาะด้าน รหัสถูกนำมาใช้ในการบีบอัดข้อมูลการเข้ารหัสลับการ ตรวจจับ และแก้ไขข้อผิดพลาดการส่งข้อมูลและการจัดเก็บข้อมูลสาขาวิทยาศาสตร์ต่างๆ เช่นทฤษฎีสารสนเทศวิศวกรรมไฟฟ้าคณิตศาสตร์ ภาษาศาสตร์และวิทยาการคอมพิวเตอร์ต่าง ศึกษาเกี่ยวกับรหัส เพื่อออกแบบ วิธี การส่งข้อมูล ที่มีประสิทธิภาพและน่าเชื่อถือ ซึ่งโดยทั่วไปเกี่ยวข้องกับการกำจัดความซ้ำซ้อนและการแก้ไขหรือตรวจจับข้อผิดพลาดในข้อมูลที่ส่ง

มีการเข้ารหัสสี่ประเภท: [ 1 ]

  1. การบีบอัดข้อมูล (หรือการเข้ารหัสต้นฉบับ )
  2. การควบคุมข้อผิดพลาด (หรือการเข้ารหัสช่องสัญญาณ )
  3. การเข้ารหัสลับ
  4. การเข้ารหัสเส้น

การบีบอัดข้อมูลพยายามกำจัดข้อมูลที่ซ้ำซ้อนที่ไม่ต้องการออกจากข้อมูลจากแหล่งที่มา เพื่อให้สามารถส่งข้อมูลได้อย่างมีประสิทธิภาพมากขึ้น ตัวอย่างเช่น การบีบอัดข้อมูล แบบ DEFLATEทำให้ไฟล์มีขนาดเล็ลง เพื่อวัตถุประสงค์ต่างๆ เช่น การลดปริมาณการรับส่งข้อมูลทางอินเทอร์เน็ต การบีบอัดข้อมูลและการแก้ไขข้อผิดพลาดอาจศึกษาควบคู่กันไปได้

การแก้ไขข้อผิดพลาดช่วยเพิ่มความซ้ำซ้อน ที่เป็นประโยชน์ ให้กับข้อมูลจากแหล่งที่มา เพื่อทำให้การส่งข้อมูลมีความทนทานต่อสิ่งรบกวนที่เกิดขึ้นในช่องทางการส่งข้อมูลมากขึ้น ผู้ใช้ทั่วไปอาจไม่ทราบว่ามีการใช้งานการแก้ไขข้อผิดพลาดในหลายๆ ด้านแผ่นซีดีเพลง ทั่วไป ใช้รหัส Reed–Solomonเพื่อแก้ไขรอยขีดข่วนและฝุ่น ในการใช้งานนี้ ช่องทางการส่งข้อมูลคือตัวแผ่นซีดีเอง โทรศัพท์มือถือยังใช้เทคนิคการเข้ารหัสเพื่อแก้ไขการลดทอนและเสียงรบกวนของการส่งสัญญาณวิทยุความถี่สูง โมเด็มข้อมูล การส่งสัญญาณโทรศัพท์ และเครือข่ายอวกาศห้วงลึกของนาซาล้วนใช้เทคนิคการเข้ารหัสช่องสัญญาณเพื่อส่งข้อมูล เช่นรหัสเทอร์โบและรหัส LDPC

ประวัติความเป็นมาของทฤษฎีการเข้ารหัส

การศึกษาทฤษฎีสารสนเทศเริ่มต้นจากการตีพิมพ์ บทความคลาสสิกของ Claude E. Shannonเรื่อง " ทฤษฎีทางคณิตศาสตร์ของการสื่อสาร " ในวารสาร Bell System Technical Journalในเดือนกรกฎาคมและตุลาคม ปี 1948 แม้ว่า Shannon จะทำบทความนี้เสร็จสมบูรณ์ที่ Bell Labs ตั้งแต่ปลายปี 1944 แล้วก็ตาม

แชนนอนได้นำเสนอแบบจำลองการสื่อสารเชิงคุณภาพและเชิงปริมาณในฐานะกระบวนการทางสถิติ โดยเริ่มต้นด้วยการกล่าวอ้างว่า

"ปัญหาพื้นฐานของการสื่อสารคือการถ่ายทอดข้อความที่เลือกไว้ที่อีกจุดหนึ่ง ณ จุดหนึ่ง ไม่ว่าจะอย่างแม่นยำหรือโดยประมาณ"

แนวคิดต่างๆ เกิดขึ้นพร้อมกับสิ่งนั้น

บทความของแชนนอนมุ่งเน้นไปที่ปัญหาเกี่ยวกับวิธีการเข้ารหัสข้อมูลที่ผู้ส่งต้องการส่งผ่านให้ดีที่สุด ในงานพื้นฐานชิ้นนี้ เขาใช้เครื่องมือในทฤษฎีความน่าจะเป็นที่พัฒนาโดยนอร์เบิร์ต วีนเนอร์ซึ่งในขณะนั้นยังอยู่ในช่วงเริ่มต้นของการนำไปประยุกต์ใช้กับทฤษฎีการสื่อสาร แชนนอนได้พัฒนาเอนโทรปีของข้อมูลเพื่อใช้เป็นมาตรวัดความไม่แน่นอนในข้อความ และโดยพื้นฐานแล้วเป็นการคิดค้นสาขาทฤษฎีข้อมูลขึ้นมา

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

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

ในปี พ.ศ. 2515 Nasir Ahmedได้เสนอการแปลงโคไซน์แบบไม่ต่อเนื่อง (DCT) ซึ่งเขาพัฒนาร่วมกับ T. Natarajan และKR Raoในปี พ.ศ. 2516 [ 2 ] DCT เป็น อัลกอริธึมการ บีบอัดแบบสูญเสีย ข้อมูลที่ใช้กันอย่างแพร่หลายที่สุด ซึ่ง เป็น พื้นฐานสำหรับรูปแบบมัลติมีเดีย เช่นJPEG , MPEGและMP3

การเขียนโค้ดต้นฉบับ

จุดมุ่งหมายของการเขียนโค้ดจากแหล่งข้อมูลคือการนำข้อมูลต้นฉบับมาทำให้มีขนาดเล็ลง

คำนิยาม

ข้อมูลสามารถมองได้ว่าเป็นตัวแปรสุ่ม โดยที่ ค่าหนึ่ง ปรากฏขึ้นด้วยความน่าจะเป็นn

ข้อมูลจะถูกเข้ารหัสด้วยสตริง (คำ) บนตัว อักษร

โค้ดคือฟังก์ชัน

(หรือหากสตริงว่างนั้นไม่ใช่ส่วนหนึ่งของตัวอักษร)

เป็นรหัสคำที่เกี่ยวข้องกับ.

ความยาวของรหัสคำเขียนได้ดังนี้

ความยาวของโค้ดที่คาดหวังคือ

การเรียงต่อกันของ คำ รหัส

รหัสลับของสตริงว่างคือสตริงว่างนั่นเอง:

คุณสมบัติ

  1. จะเป็น เมทริกซ์ ไม่เอกฐานหาก เป็น เมทริกซ์หนึ่ง ต่อหนึ่ง
  2. สามารถถอดรหัสได้อย่างเฉพาะเจาะจงหากเป็นฟังก์ชันหนึ่งต่อ หนึ่ง
  3. จะเกิดขึ้นทันทีหากไม่ใช่คำนำหน้าที่เหมาะสมของ(และในทางกลับกัน)

หลักการ

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

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

เทคนิคต่างๆ ที่ใช้ในระบบการเข้ารหัสแหล่งข้อมูลพยายามที่จะบรรลุขีดจำกัดของเอนโทรปีของแหล่งข้อมูลC ( x ) ≥ H ( x ) โดยที่H ( x ) คือเอนโทรปีของแหล่งข้อมูล (บิตเรต) และ C ( x ) คือบิตเรตหลังการบีบอัด โดยเฉพาะอย่างยิ่ง ไม่มีระบบการเข้ารหัสแหล่งข้อมูลใดที่ดีไปกว่าเอนโทรปีของแหล่งข้อมูลได้

ตัวอย่าง

การส่ง แฟกซ์ใช้รหัสความยาวแบบ ง่าย การเข้ารหัสต้นทางจะลบข้อมูลที่ไม่จำเป็นทั้งหมดออกจากระบบ ทำให้ลดแบนด์วิดท์ที่จำเป็นสำหรับการส่งลง

การเข้ารหัสช่องสัญญาณ

จุดประสงค์ของทฤษฎีการเข้ารหัสช่องสัญญาณคือการค้นหารหัสที่ส่งข้อมูลได้อย่างรวดเร็ว มีคำรหัส ที่ถูกต้องจำนวนมาก และสามารถแก้ไขหรืออย่างน้อยก็ตรวจจับข้อผิดพลาดได้หลายอย่าง แม้ว่าคุณสมบัติเหล่านี้จะไม่ขัดแย้งกัน แต่ประสิทธิภาพในด้านต่างๆ เหล่านี้เป็นการแลกเปลี่ยนกัน ดังนั้น รหัสที่แตกต่างกันจึงเหมาะสมที่สุดสำหรับแอปพลิเคชันที่แตกต่างกัน คุณสมบัติที่จำเป็นของรหัสนี้ส่วนใหญ่ขึ้นอยู่กับความน่าจะเป็นของข้อผิดพลาดที่เกิดขึ้นระหว่างการส่ง ในแผ่นซีดีทั่วไป ความเสียหายส่วนใหญ่เกิดจากฝุ่นหรือรอยขีดข่วน

ซีดีใช้การเข้ารหัสแบบไขว้ Reed–Solomonเพื่อกระจายข้อมูลไปทั่วดิสก์[ 3 ]

แม้จะไม่ใช่โค้ดที่ดีมากนัก แต่โค้ดแบบส่งซ้ำอย่างง่ายก็สามารถใช้เป็นตัวอย่างที่เข้าใจได้ สมมติว่าเราใช้บล็อกข้อมูลบิต (แทนเสียง) และส่งไปสามครั้ง ที่ตัวรับ เราจะตรวจสอบการส่งซ้ำทั้งสามครั้งทีละบิตและเลือกผลส่วนใหญ่ แต่สิ่งที่น่าสนใจคือ เราไม่ได้ส่งบิตตามลำดับ แต่เราใช้วิธีสลับบิต บล็อกข้อมูลบิตจะถูกแบ่งออกเป็น 4 บล็อกเล็กๆ ก่อน จากนั้นเราจะวนไปทีละบล็อกและส่งบิตจากบล็อกแรก บล็อกที่สอง และต่อไปเรื่อยๆ ทำเช่นนี้สามครั้งเพื่อกระจายข้อมูลไปทั่วพื้นผิวของดิสก์ ในบริบทของโค้ดแบบส่งซ้ำอย่างง่าย อาจดูเหมือนไม่มีประสิทธิภาพ แต่ก็มีโค้ดที่มีประสิทธิภาพมากกว่านี้ซึ่งสามารถแก้ไขข้อผิดพลาดแบบ "ระเบิด" ของรอยขีดข่วนหรือจุดฝุ่นได้อย่างมีประสิทธิภาพเมื่อใช้วิธีการสลับบิตนี้

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

รหัสเชิงเส้น

คำว่าทฤษฎีการเข้ารหัสเชิงพีชคณิตหมายถึง สาขาย่อยของทฤษฎีการเข้ารหัส ซึ่งคุณสมบัติของรหัสถูกแสดงออกมาในรูปของพีชคณิต แล้วจึงทำการวิจัยเพิ่มเติม

ทฤษฎีการเข้ารหัสเชิงพีชคณิตโดยพื้นฐานแล้วแบ่งออกเป็นสองประเภทหลัก:

  • รหัสบล็อกเชิงเส้น
  • รหัสคอนโวลูชัน

โดยจะวิเคราะห์คุณสมบัติหลักสามประการของโค้ด ดังนี้:

รหัสบล็อกเชิงเส้น

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

รหัสบล็อกเชิงเส้นจะถูกสรุปโดยตัวอักษรสัญลักษณ์ (เช่น ไบนารีหรือเทอร์นารี) และพารามิเตอร์ ( n , m , d min ) [ 5 ]โดยที่

  1. n คือความยาวของรหัสคำในหน่วยสัญลักษณ์
  2. m คือจำนวนสัญลักษณ์ต้นทางที่จะใช้ในการเข้ารหัสพร้อมกัน
  3. d minคือระยะทางแฮมมิงขั้นต่ำสำหรับรหัสนี้

มีรหัสบล็อกเชิงเส้นหลายประเภท เช่น

  1. รหัสแบบวงจร (เช่นรหัสแฮมมิง )
  2. รหัสการทำซ้ำ
  3. รหัสพาริตี
  4. รหัสพหุนาม (เช่นรหัส BCH )
  5. รหัสรีด-โซโลมอน
  6. รหัสเรขาคณิตเชิงพีชคณิต
  7. รหัสรีด-มุลเลอร์
  8. รหัสที่สมบูรณ์แบบ
  9. รหัสที่สามารถกู้คืนได้ในพื้นที่

รหัสบล็อกมีความเกี่ยวข้องกับ ปัญหา การจัดเรียงทรงกลมซึ่งได้รับความสนใจมาหลายปีแล้ว ในสองมิติ การมองเห็นภาพนั้นง่าย ลองนึกภาพเหรียญจำนวนมากวางราบอยู่บนโต๊ะแล้วดันเข้าหากัน ผลลัพธ์ที่ได้คือรูปแบบหกเหลี่ยมคล้ายรังผึ้ง แต่รหัสบล็อกอาศัยมิติที่มากกว่า ซึ่งมองเห็นภาพได้ยากรหัส Golay (24,12) อันทรงพลัง ที่ใช้ในการสื่อสารในอวกาศลึกใช้ 24 มิติ หากใช้เป็นรหัสไบนารี (ซึ่งมักจะเป็นเช่นนั้น) มิติเหล่านั้นจะหมายถึงความยาวของคำรหัสตามที่กำหนดไว้ข้างต้น

ทฤษฎีการเข้ารหัสใช้ แบบจำลองทรงกลม Nมิติ ตัวอย่างเช่น สามารถบรรจุเหรียญเพนนีลงในวงกลมบนโต๊ะได้กี่เหรียญ หรือใน 3 มิติ สามารถบรรจุลูกแก้วลงในลูกโลกได้กี่ลูก การพิจารณาอื่นๆ ก็มีส่วนในการเลือกใช้รหัส ตัวอย่างเช่น การบรรจุรูปหกเหลี่ยมลงในกล่องสี่เหลี่ยมผืนผ้าจะทำให้มีพื้นที่ว่างที่มุม เมื่อมิติใหญ่ขึ้น เปอร์เซ็นต์ของพื้นที่ว่างจะน้อยลง แต่ในบางมิติ การบรรจุจะใช้พื้นที่ทั้งหมด และรหัสเหล่านี้เรียกว่ารหัส "สมบูรณ์" รหัสสมบูรณ์ที่ไม่ธรรมดาและมีประโยชน์เพียงอย่างเดียวคือรหัสแฮมมิงระยะทาง 3 ที่มีพารามิเตอร์ที่สอดคล้องกับ (2 r – 1, 2 r – 1 – r , 3) ​​และรหัสโกเลย์ไบนารี [23,12,7] และรหัสโกเลย์เทอร์นารี [11,6,5] [ 4 ] [ 5 ]

คุณสมบัติรหัสอีกประการหนึ่งคือจำนวนเพื่อนบ้านที่รหัสคำเดียวอาจมีได้[ 6 ] ลองพิจารณาเหรียญเพนนีเป็นตัวอย่างอีกครั้ง ก่อนอื่นเราจัดเรียงเหรียญเพนนีในตารางสี่เหลี่ยมผืนผ้า แต่ละเหรียญเพนนีจะมีเพื่อนบ้านใกล้เคียง 4 เหรียญ (และ 4 เหรียญที่มุมซึ่งอยู่ไกลออกไป) ในรูปหกเหลี่ยม แต่ละเหรียญเพนนีจะมีเพื่อนบ้านใกล้เคียง 6 เหรียญ เมื่อเราเพิ่มมิติ จำนวนเพื่อนบ้านใกล้เคียงจะเพิ่มขึ้นอย่างรวดเร็ว ผลที่ได้คือจำนวนวิธีที่สัญญาณรบกวนทำให้ผู้รับเลือกเพื่อนบ้าน (ดังนั้นจึงเกิดข้อผิดพลาด) ก็เพิ่มขึ้นเช่นกัน นี่เป็นข้อจำกัดพื้นฐานของรหัสบล็อก และรหัสทั้งหมด อาจยากขึ้นที่จะทำให้เกิดข้อผิดพลาดกับเพื่อนบ้านเพียงรายเดียว แต่จำนวนเพื่อนบ้านอาจมีมากพอที่จะทำให้ความน่าจะเป็นของข้อผิดพลาดโดยรวมลดลง[ 6 ]

คุณสมบัติของรหัสบล็อกเชิงเส้นถูกนำไปใช้ในแอปพลิเคชันหลายอย่าง ตัวอย่างเช่น คุณสมบัติเอกลักษณ์ของซินโดรมโคเซตของรหัสบล็อกเชิงเส้นถูกนำไปใช้ในการสร้างเทรลลิส[ 7 ]ซึ่งเป็นหนึ่งในรหัสการสร้างรูปร่างที่ รู้จักกันดีที่สุด

รหัสคอนโวลูชัน

แนวคิดเบื้องหลังรหัสคอนโวลูชันคือการทำให้สัญลักษณ์แต่ละคำในรหัสเป็นผลรวมถ่วงน้ำหนักของสัญลักษณ์ข้อความอินพุตต่างๆ ซึ่งคล้ายกับ การใช้ คอนโวลูชันใน ระบบ LTIเพื่อหาเอาต์พุตของระบบ เมื่อเรารู้ข้อมูลอินพุตและการตอบสนองต่อแรงกระตุ้น

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

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

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

รหัสคอนโวลูชันถูกนำไปใช้ในโมเด็มย่านความถี่เสียง (V.32, V.17, V.34) และในโทรศัพท์มือถือ GSM รวมถึงอุปกรณ์สื่อสารผ่านดาวเทียมและอุปกรณ์สื่อสารทางทหาร

การเข้ารหัสลับ

การเข้ารหัสลับหรือการเข้ารหัสลับคือการปฏิบัติและการศึกษาเทคนิคสำหรับการสื่อสารที่ปลอดภัยเมื่อมีบุคคลที่สาม (เรียกว่าศัตรู ) [ 8 ]โดยทั่วไปแล้ว มันคือการสร้างและวิเคราะห์โปรโตคอลที่ปิดกั้นศัตรู[ 9 ]แง่มุมต่างๆ ในความปลอดภัยของข้อมูลเช่นการรักษาความลับของ ข้อมูล ความสมบูรณ์ของข้อมูลการตรวจสอบสิทธิ์และการไม่ปฏิเสธ[ 10 ]ล้วนเป็นหัวใจสำคัญของการเข้ารหัสลับสมัยใหม่ การเข้ารหัสลับสมัยใหม่เกิดขึ้นจากจุดตัดของสาขาวิชาคณิตศาสตร์วิทยาการคอมพิวเตอร์และวิศวกรรมไฟฟ้าการประยุกต์ใช้การเข้ารหัสลับ ได้แก่บัตรเอทีเอ็มรหัสผ่านคอมพิวเตอร์และพาณิชย์ อิเล็กทรอนิกส์

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

วิทยาการเข้ารหัสลับสมัยใหม่นั้นอาศัยทฤษฎีทางคณิตศาสตร์และการปฏิบัติทางวิทยาศาสตร์คอมพิวเตอร์เป็นอย่างมาก อัลกอริทึมการเข้ารหัสถูกออกแบบโดยคำนึงถึงความยากในการคำนวณทำให้ยากต่อการถอดรหัสในทางปฏิบัติโดยผู้ไม่หวังดี ในทางทฤษฎีแล้วเป็นไปได้ที่จะถอดรหัสระบบดังกล่าว แต่เป็นไปไม่ได้ที่จะทำได้ด้วยวิธีการใดๆ ที่รู้จักในทางปฏิบัติ ดังนั้น ระบบเหล่านี้จึงถูกเรียกว่ามีความปลอดภัยในการคำนวณ ความก้าวหน้าทางทฤษฎี เช่น การปรับปรุง อัลกอริทึม การแยกตัวประกอบจำนวนเต็มและเทคโนโลยีการคำนวณที่เร็วขึ้น ทำให้จำเป็นต้องปรับปรุงวิธีการเหล่านี้อย่างต่อเนื่อง มี ระบบ ที่มีความปลอดภัยในเชิงข้อมูลซึ่งพิสูจน์ได้ว่าไม่สามารถถอดรหัสได้แม้จะมีพลังการคำนวณไม่จำกัด ตัวอย่างเช่น รหัสวันไทม์แพดแต่ระบบเหล่านี้ยากต่อการนำไปใช้มากกว่ากลไกที่ดีที่สุดที่สามารถถอดรหัสได้ในทางทฤษฎีแต่มีความปลอดภัยในการคำนวณ

การเข้ารหัสเส้น

รหัสสาย (หรือเรียกอีกอย่างว่า การมอดูเลชั่นเบสแบนด์ดิจิทัล หรือ วิธีการส่งสัญญาณ เบสแบนด์ ดิจิทัล ) คือรหัสที่เลือกใช้ภายในระบบสื่อสารเพื่อวัตถุประสงค์ ใน การส่งสัญญาณ เบสแบนด์

การเข้ารหัสสายสัญญาณมักใช้สำหรับการส่งข้อมูลดิจิทัล ประกอบด้วยการแทนสัญญาณดิจิทัลที่จะส่งด้วยสัญญาณที่ไม่ต่อเนื่องทั้งในด้านแอมพลิจูดและเวลา ซึ่งได้รับการปรับแต่งอย่างเหมาะสมสำหรับคุณสมบัติเฉพาะของช่องสัญญาณทางกายภาพ (และของอุปกรณ์รับสัญญาณ) รูป แบบ คลื่นของแรงดันหรือกระแสที่ใช้แทนค่า 1 และ 0 ของข้อมูลดิจิทัลบนลิงก์การส่งสัญญาณเรียกว่าการเข้ารหัสสายสัญญาณ ประเภทของการเข้ารหัสสายสัญญาณที่ใช้กันทั่วไป ได้แก่ การเข้ารหัสแบบขั้วเดียว (unipolar) , การเข้ารหัสแบบขั้ว ( polar) , การเข้ารหัสแบบสอง ขั้ว (bipolar ) และการเข้ารหัสแบบแมนเชส เตอร์ (Manchester )

การประยุกต์ใช้ทฤษฎีการเข้ารหัสในด้านอื่นๆ

อีกประเด็นสำคัญในทฤษฎีการเข้ารหัสคือการออกแบบรหัสที่ช่วยในการซิงโครไนซ์ รหัสอาจได้รับการออกแบบเพื่อให้ สามารถตรวจจับและแก้ไข การเลื่อนเฟสได้ง่าย และสามารถส่งสัญญาณหลายสัญญาณในช่องสัญญาณเดียวกันได้

อีกหนึ่งการประยุกต์ใช้รหัส ซึ่งใช้ในระบบโทรศัพท์มือถือบางระบบ คือการเข้าถึงแบบหลายผู้ใช้โดยการแบ่งรหัส (CDMA) โทรศัพท์แต่ละเครื่องจะได้รับลำดับรหัสที่ไม่สัมพันธ์กันโดยประมาณกับรหัสของโทรศัพท์เครื่องอื่น เมื่อทำการส่งสัญญาณ คำรหัสจะถูกใช้เพื่อปรับเปลี่ยนบิตข้อมูลที่แสดงถึงข้อความเสียง ที่เครื่องรับ จะมีการถอดรหัสเพื่อกู้คืนข้อมูล คุณสมบัติของรหัสประเภทนี้ทำให้ผู้ใช้หลายคน (ที่มีรหัสต่างกัน) สามารถใช้ช่องสัญญาณวิทยุเดียวกันได้ในเวลาเดียวกัน สำหรับเครื่องรับ สัญญาณของผู้ใช้รายอื่นจะปรากฏต่อตัวถอดรหัสเป็นเพียงสัญญาณรบกวนระดับต่ำเท่านั้น

รหัสอีกประเภทหนึ่งโดยทั่วไปคือ รหัส ขอส่งซ้ำอัตโนมัติ (ARQ) ในรหัสเหล่านี้ ผู้ส่งจะเพิ่มความซ้ำซ้อนให้กับแต่ละข้อความเพื่อตรวจสอบข้อผิดพลาด โดยปกติจะเพิ่มบิตตรวจสอบ หากบิตตรวจสอบไม่สอดคล้องกับส่วนที่เหลือของข้อความเมื่อมาถึง ผู้รับจะขอให้ผู้ส่งส่งข้อความนั้นซ้ำ โปรโตคอล เครือข่ายบริเวณกว้างส่วนใหญ่ใช้ ARQ ยกเว้นโปรโตคอลที่ง่ายที่สุด โปรโตคอลที่ใช้กันทั่วไป ได้แก่SDLC (IBM), TCP (อินเทอร์เน็ต), X.25 (สากล) และอื่นๆ อีกมากมาย มีการวิจัยอย่างกว้างขวางในหัวข้อนี้เนื่องจากปัญหาของการจับคู่แพ็กเก็ตที่ถูกปฏิเสธกับแพ็กเก็ตใหม่ ว่าเป็นแพ็กเก็ตใหม่หรือเป็นการส่งซ้ำ โดยทั่วไปจะใช้ระบบการกำหนดหมายเลข เช่นเดียวกับใน TCP " RFC793" RFCS คณะทำงานด้านวิศวกรรมอินเทอร์เน็ต (IETF) กันยายน 1981

การทดสอบแบบกลุ่ม

การทดสอบแบบกลุ่มใช้รหัสในรูปแบบที่แตกต่างออกไป ลองพิจารณากลุ่มสิ่งของจำนวนมากที่มีเพียงไม่กี่ชิ้นที่แตกต่างกันในลักษณะเฉพาะ (เช่น ผลิตภัณฑ์ที่ชำรุดหรือผู้ทดสอบที่ติดเชื้อ) แนวคิดของการทดสอบแบบกลุ่มคือการพิจารณาว่าสิ่งของใด "แตกต่าง" โดยใช้การทดสอบให้น้อยที่สุดเท่าที่จะเป็นไปได้ ต้นกำเนิดของปัญหานี้มีรากฐานมาจากสงครามโลกครั้งที่สองเมื่อกองทัพอากาศสหรัฐฯจำเป็นต้องทดสอบทหารของตนเพื่อ หา โรคซิฟิลิส[ 11 ]

การเข้ารหัสแบบอนาล็อก

ข้อมูลจะถูกเข้ารหัสแบบอนาล็อกในเครือข่ายประสาทของสมองในการประมวลผลสัญญาณอนาล็อกและอิเล็กทรอนิกส์อนาล็อกลักษณะของการเข้ารหัสแบบอนาล็อก ได้แก่ การแก้ไขข้อผิดพลาดแบบอนาล็อก[ 12 ] การบีบอัดข้อมูลแบบอนาล็อก[ 13 ]และการเข้ารหัสแบบอนาล็อก[ 14 ]

การเข้ารหัสประสาท

การเข้ารหัสประสาทเป็น สาขาที่เกี่ยวข้องกับ ประสาทวิทยาศาสตร์ซึ่งเกี่ยวข้องกับวิธีการที่ข้อมูลทางประสาทสัมผัสและข้อมูลอื่นๆ ถูกแสดงในสมองโดยเครือข่ายของเซลล์ประสาทเป้าหมายหลักของการศึกษาการเข้ารหัสประสาทคือการระบุลักษณะความสัมพันธ์ระหว่างสิ่งเร้าและการตอบสนองของเซลล์ประสาทแต่ละตัวหรือกลุ่มเซลล์ประสาท และความสัมพันธ์ระหว่างกิจกรรมทางไฟฟ้าของเซลล์ประสาทในกลุ่ม[ 15 ]เชื่อกันว่าเซลล์ประสาทสามารถเข้ารหัสข้อมูล ทั้ง แบบดิจิทัลและอนาล็อก ได้ [ 16 ]และเซลล์ประสาทปฏิบัติตามหลักการของทฤษฎีสารสนเทศและบีบอัดข้อมูล[ 17 ]และตรวจจับและแก้ไข[ 18 ] ข้อผิดพลาดในสัญญาณที่ส่งไปทั่วสมองและระบบประสาทที่กว้างขึ้น

ดูเพิ่มเติม

หมายเหตุ

  1. ^ James Irvine; David Harle (2002). "2.4.4 ประเภทของการเข้ารหัส" การสื่อสารข้อมูลและเครือข่าย John Wiley & Sons. หน้า 18. ISBN 9780471808725การเข้ารหัสมีสี่ประเภท
  2. ^ Nasir Ahmed . "วิธีการคิดค้นการแปลงโคไซน์แบบไม่ต่อเนื่อง" . การประมวลผลสัญญาณดิจิทัล, เล่ม 1, ฉบับที่ 1, 1991, หน้า 4-5.
  3. ^ ท็อดด์ แคมป์เบลล์. "Answer Geek: แผ่นซีดีกฎการแก้ไขข้อผิดพลาด "
  4. ^ a b Terras, Audrey (1999). การวิเคราะห์ฟูริเยร์บนกลุ่มจำกัดและการประยุกต์ใช้สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์หน้า  195 ISBN 978-0-521-45718-7.
  5. ^ a b Blahut, Richard E. (2003). รหัสพีชคณิตสำหรับการส่งข้อมูลสำนักพิมพ์มหาวิทยาลัยเคมบริดจ์ISBN 978-0-521-55374-2.
  6. ^ a b Christian Schlegel; Lance Pérez (2004). Trellis and turbo coding . Wiley-IEEE. หน้า 73. ISBN 978-0-471-22755-7.
  7. ^ Forney, GD Jr. (มีนาคม 1992). "การสร้างโครงสร้างแบบ Trellis". IEEE Transactions on Information Theory . 38 (2 Pt 2): 281– 300. doi : 10.1109/18.119687 . S2CID 37984132 . 
  8. ^ Rivest, Ronald L. (1990). "วิทยาการเข้ารหัสลับ". ใน J. Van Leeuwen (บรรณาธิการ). คู่มือวิทยาการคอมพิวเตอร์เชิงทฤษฎี . เล่ม 1. Elsevier.
  9. เบลลาเร, มิเฮียร์; โรกาเวย์, ฟิลลิป (21 กันยายน พ.ศ. 2548). "การแนะนำ". ความ รู้เบื้องต้นเกี่ยวกับการเข้ารหัสสมัยใหม่พี 10.
  10. ^ Menezes, AJ; van Oorschot, PC; Vanstone, SA (1997). Handbook of Applied Cryptography . Taylor & Francis. ISBN 978-0-8493-8523-0.
  11. ^ Dorfman, Robert (1943). "การตรวจจับสมาชิกที่บกพร่องของประชากรขนาดใหญ่" . Annals of Mathematical Statistics . 14 (4): 436– 440. doi : 10.1214/aoms/1177731363 .
  12. ^ Chen, Brian; Wornell, Gregory W. (กรกฎาคม 1998). "รหัสแก้ไขข้อผิดพลาดแบบอนาล็อกโดยอิงจากระบบพลวัตแบบอลวน" (PDF) . IEEE Transactions on Communications . 46 (7): 881– 890. CiteSeerX 10.1.1.30.4093 . doi : 10.1109/26.701312 . เก็บถาวรจากต้นฉบับ(PDF)เมื่อ 2001-09-27 . สืบค้นเมื่อ2013-06-30 . 
  13. ^ Novak, Franc; Hvala, Bojan; Klavžar, Sandi (1999). "เกี่ยวกับการวิเคราะห์ลายเซ็นอนาล็อก". รายงานการประชุมเรื่องการออกแบบ ระบบอัตโนมัติ และการทดสอบในยุโรป . CiteSeerX 10.1.1.142.5853 . ISBN  1-58113-121-6.
  14. ^ Shujun Li; Chengqing Li; Kwok-Tung Lo; Guanrong Chen (เมษายน 2551). "การวิเคราะห์การเข้ารหัสโดยใช้การแยกแหล่งที่มาแบบปิดบัง" (PDF) . IEEE Transactions on Circuits and Systems I . 55 (4): 1055– 63. arXiv : cs/0608024 . doi : 10.1109/TCSI.2008.916540 . S2CID 2224947 . 
  15. ^ Brown EN, Kass RE, Mitra PP (พฤษภาคม 2547). "การวิเคราะห์ข้อมูลชุดสัญญาณกระตุ้นประสาทหลายชุด: สถานะปัจจุบันและความท้าทายในอนาคต" (PDF) Nature Neuroscience . 7 (5): 456– 461. doi : 10.1038/nn1228 . PMID 15114358 . S2CID 562815 .  
  16. ^ Thorpe, SJ (1990). "เวลาการมาถึงของสไปค์: รูปแบบการเข้ารหัสที่มีประสิทธิภาพสูงสำหรับเครือข่ายประสาท" (PDF)ใน Eckmiller, R.; Hartmann, G.; Hauske, G. (บรรณาธิการ). การประมวลผลแบบขนานในระบบประสาทและคอมพิวเตอร์ (PDF) North-Holland. หน้า  91–94 . ISBN 978-0-444-88390-2สืบค้นข้อมูลเมื่อ 30 มิถุนายน 2556
  17. ^ Gedeon, T.; Parker, AE; Dimitrov, AG (ฤดูใบไม้ผลิ 2002). " การบิดเบือนข้อมูลและการเข้ารหัสประสาท"วารสารคณิตศาสตร์ประยุกต์ของแคนาดา10 (1): 10. CiteSeerX 10.1.1.5.6365เก็บถาวรจากต้นฉบับเมื่อ 2016-11-17 สืบค้นเมื่อ2013-06-30 
  18. ^ Stiber, M. (กรกฎาคม 2548). "ความแม่นยำของจังหวะการเกิดสไปค์และการแก้ไขข้อผิดพลาดของระบบประสาท: พฤติกรรมเฉพาะที่". Neural Computation . 17 (7): 1577– 1601. arXiv : q-bio/0501021 . doi : 10.1162/0899766053723069 . PMID 15901408. S2CID 2064645 .  
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Coding_theory&oldid=1350505624 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ทฤษฎีการเข้ารหัส

ทฤษฎีการเข้ารหัสคือการศึกษาคุณสมบัติของรหัสและความเหมาะสมของรหัสแต่ละประเภทสำหรับการใช้งานเฉพาะด้าน รหัสถูกนำมาใช้ในการบีบอัดข้อมูลการเข้ารหัสลับการ ตรวจจับ

ประวัติความเป็นมาของทฤษฎีการเข้ารหัส

การศึกษา ทฤษฎีสารสนเทศ เริ่มต้นจากการตีพิมพ์ บทความคลาสสิกของ Claude E.

การเขียนโค้ดต้นฉบับ

จุดมุ่งหมายของการเขียนโค้ดจากแหล่งข้อมูลคือการนำข้อมูลต้นฉบับมาทำให้มีขนาดเล็ลง

คำนิยาม

ข้อมูลสามารถมองได้ว่าเป็น ตัวแปรสุ่ม โดยที่ ค่าหนึ่ง ปรากฏขึ้นด้วยความน่าจะเป็นn X : Ω → X {\displaystyle X:\Omega \to {\mathcal {X}}} x ∈ X {\displaystyle x\in {\mathcal {X}}} พี [ X = x ] {\displaystyle \mathbb {P} [X=x]}