วันจันทร์ที่ 18 กุมภาพันธ์ พ.ศ. 2556

การเข้าและถอดรหัสข้อมูล

การเข้าและถอดรหัสข้อมูล

การเข้าและถอดรหัสข้อมูล (WEP Encryption/Decryption) ใช้หลักการในการเข้าและถอดรหัสข้อมูลที่เป็นแบบ symmetrical (นั่นคือรหัสที่ใช้ในการเข้ารหัสข้อมูลจะเป็นตัวเดียวกันกับรหัสที่ใช้ สำหรับการถอดรหัสข้อมูล)
  • การทำงานของการเข้ารหัสข้อมูลในกลไก WEP Encryption
    • 1. Key ขนาด 64 หรือ 128 บิต สร้างขึ้นโดยการนำเอารหัสลับซึ่งมีความยาว 40 หรือ 104 บิต มาต่อรวมกับข้อความเริ่มต้น IV (Initialization Vector) ขนาด 24 บิตที่กำหนดแบบสุ่มขึ้นมา
    • 2. Integrity Check Value (ICV) ขนาด 32 บิต สร้างขึ้นโดยการคำนวณค่า CRC-32 (32-bit Cyclic Redundant Check) จากข้อมูลดิบที่จะส่งออกไป (ICV) ซึ่งจะนำไปต่อรวมกับข้อมูลดิบ มีไว้สำหรับตรวจสอบความถูกต้องของข้อมูลหลังจากการถอดรหัสแล้ว)
    • 3. ข้อความที่มีความสุ่ม (Key Stream) ขนาดเท่ากับความยาวของข้อมูลดิบที่จะส่งกับอีก 32 บิต (ซึ่งเป็นความยาวของ ICV) สร้างขึ้นโดยหน่วยสร้างข้อความที่มีความสุ่มหรือ PRNG (Pseudo-Random Number Generator) ที่มีชื่อเรียกว่า RC4 ซึ่งจะใช้ Key ที่กล่าวมาข้างต้นเป็น Input (หรือ Seed) หมายเหตุ PRNG จะสร้างข้อความสุ่มที่แตกต่างกันสำหรับ Seed แต่ละค่าที่ใช้
    • 4. ข้อความที่ได้รับการเข้ารหัส (Ciphertext) สร้างขึ้นโดยการนำเอา ICV ต่อกับข้อมูลดิบแล้วทำการ XOR แบบบิตต่อบิตกับข้อความสุ่ม (Key Stream) ซึ่ง PRNG ได้สร้างขึ้น
    • 5. สัญญาณที่จะส่งออกไปคือ ICV และข้อความที่ได้รับการเข้ารหัส (Ciphertext)
  • การทำงานของการเข้ารหัสข้อมูลในกลไก WEP Decryption
    • 1. Key ขนาด 64 หรือ 128 บิต สร้างขึ้นโดยการนำเอารหัสลับซึ่งมีความยาว 40 หรือ 104 บิต (ซึ่งเป็นรหัสลับเดียวกับที่ใช้ในการเข้ารหัสข้อมูล) มาต่อรวมกับ IV ที่ส่งมากับสัญญาณที่ได้รับ
    • 2. PRNG สร้างข้อความสุ่ม (Key Stream) ที่มีขนาดเท่ากับความยาวของข้อความที่ได้รับการเข้ารหัสและถูกส่งมา โดยใช้ Key ที่กล่าวมาข้างต้นเป็น Input
    • 3. ข้อมูลดิบและ ICV ได้รับการถอดรหัสโดยการนำเอาข้อความที่ได้รับมา XOR แบบบิตต่อบิตกับข้อความสุ่ม (Key Stream) ซึ่ง PRNG ได้สร้างขึ้น
    • 4. สร้าง ICV' โดยการคำนวณค่า CRC-32 จากข้อมูลดิบที่ถอดรหัสแล้วเพื่อนำมาเปรียบเทียบกับค่า ICV ที่ส่งมา หากค่าทั้งสองตรงกัน (ICV' = ICV) แสดงว่าการถอดรหัสถูกต้องและผู้ที่ส่งมาได้รับอนุญาต (มีรหัสลับของเครือข่าย) แต่หากค่าทั้งสองไม่ตรงกันแสดงว่าการถอดรหัสไม่ถูกต้องหรือผู้ที่ส่งมาไม่ ได้รับอนุญาต

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

แสดงความคิดเห็น