ENCRYPT 72

โปรแกรมเข้ารหัสข้อมูลลับ AES | ISO/IEC 18033-3 | Credits

Advanced Encryption Standard

โปรแกรมนี้ ใช้เข้ารหัสข้อมูล ด้วยวิธี Advanced Encryption Standard (AES) ของสำนักงานความมั่นคงปลอดภัยไซเบอร์และโครงสร้างพื้นฐานของประเทศสหรัฐอเมริกา (Cybersecurity and Infrastructure Security Agency) ซึ่งเป็นมาตรฐาน ISO/IEC 18033-3 ทั้งนี้ เพื่อคุ้มครองข้อมูลข่าวสารลับ ระดับ TOP SECRET (ลับที่สุด)

A lowercase letter

A capital (uppercase) letter

A number

A special character

A space

Minimum 8 characters

Encrypted:



Encryption Report:
rows="8">



AES Decryption

Decrypted:



เทคนิคการเข้ารหัส
  1. Secret key ที่ใช้ล็อคและปลดล็อคข้อมูล เป็นคำหรือวลีก็ได้ และควรคาดเดายาก คือ มีตัวพิมพ์เล็ก / ตัวพิมพ์ใหญ่ / อักขระพิเศษ / ช่องว่าง / ตัวเลข / และมีอย่างน้อย 8 ตัว ระบบจะแปลง คำหรือวลีนั้น เป็น actual key ขนาด 64 ไบต์ (512 บิท) และแปลงข้อมูลต้นฉบับ (plaintext) เป็นรหัสเลขฐานสอง (ciphertext) เพื่อผสมกับ key (round key) รอบละ 1 ดอก โดยมีการตัดข้อมูลเป็น block แต่ละ block ถูกตัดย่อยเป็นชิ้น ๆ แล้วสลับที่กัน ไม่ให้แปรผันแบบเส้นตรงกับข้อมูลเดิม (nonlinear complex modification) และมีการเปลี่ยน round key ทุกรอบ โดยที่จำนวนรอบการเข้ารหัส คือ 14 รอบ ซึ่งเป็นวิธีเข้ารหัสแบบ block cipher ที่มีความปลอดภัยสูงสุดในปัจจุบัน (AES-256)
  2. โปรแกรมนี้ใช้ crypto-js.min.js ในการเข้ารหัสแบบ AES โหมด CBC และใช้ Public-Key Cryptography Standards (Pkcs7) padding scheme โดยอาศัย JavaScript Library จาก Github repository (crypto-js เวอร์ชันล่าสุด 4.2.0)
  3. ในปี พ.ศ. 2567 สำนักงานความมั่นคงปลอดภัยไซเบอร์และโครงสร้างพื้นฐานของสหรัฐอเมริกา (Cybersecurity and Infrastructure Security Agency) ยังคงแนะนำให้หน่วยงานรัฐบาลสหรัฐอเมริกา ใช้วิธี AES ในการเข้ารหัสข้อมูลข่าวสารลับ แทนมาตรฐานเดิม (Data Encryption Standard หรือ DES)
  4. คณะกรรมการด้านระบบความปลอดภัยแห่งชาติของประเทศสหรัฐอเมริกา (U.S. Committee on National Security Systems: CNSS) มีนโยบายให้ใช้ AES เข้ารหัสข้อมูลข่าวสารลับ ระดับลับที่สุด (TOP SECRET) โดยใช้ key ขนาด 192 หรือ 256 บิท ส่วน key ขนาด 128 บิท ใช้เข้ารหัสข้อมูลข่าวสารลับ ระดับลับมาก (SECRET)
  5. โปรแกรมนี้ เขียนด้วยภาษา HTML/JavaScript แบบ open source ไม่มีการบันทึกข้อมูลที่เข้ารหัสไว้แต่อย่างใด หากท่านลืม secret key และได้ทำลายข้อมูลต้นฉบับแล้ว จะไม่สามารถกู้ข้อมูลต้นฉบับได้ เว้นแต่จะคาดเดา secret key ถูกต้อง
  6. ไม่ควรใช้ secret key แบบเดียวกัน ในการเข้ารหัสข้อมูลหลายชุด และต้องเก็บ secret key เป็นความลับ ให้เข้าถึงได้เฉพาะผู้มีหน้าที่เกี่ยวข้องเท่านั้น
  7. สำหรับ Developer หากจำเป็นต้องใช้ secret key ใน source code ควรนำ secret key นั้น มาทำการ hash แล้วบันทึก hashed text แทน โดยใช้ Secure Hash Algorithm (SHA) ที่ปลอดภัยสูง เช่น SHA3-512

SHA3-512:



Hashed:

เอกสารอ้างอิง
Kietpawpan, M. 2024. 2024. ENCRYPT: A Web App for Advanced Encryption Standard Implementation . Github Repository: Encryption (https://github.com/Kietpawpan/encryption).
U.S. National Institute of Standards and Technology (NIST). 2000. Advanced Encryption Standard (AES). Federal Information Processing Standards Publication. 38 pp. (https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf).
U.S. Committee on National Security Systems. 2003. CNSS Policy No. 15, Fact Sheet No. 1 National Policy on the Use of the Advanced Encryption Standard (AES) to Protect National Security Systems and National Security Information. CNSS Secretariat (I42) . National Security Agency. 3 pp. (https://csrc.nist.gov/csrc/media/projects/cryptographic-module-validation-program/documents/cnss15fs.pdf).
U.S. Cybersecurity and Infrastructure Security Agency. 2024. Transition to Advanced Encryption Standard (AES). (https://www.cisa.gov/sites/default/files/2024-05/23_0918_fpic_AES-Transition-WhitePaper_Final_508C_24_0513.pdf).
Mott, J. and E. Vosberg. 2016. Crypto-js Javascript Library. Github Repository. (https://github.com/brix/crypto-js).
Chen, Yi-Cyuan. 2023. A simple SHA-3 / Keccak / Shake hash function for JavaScript supports UTF-8 encoding. (https://github.com/emn178/js-sha3).

MNRE SLC

โครงการพัฒนาบริการอิเล็กทรอนิกส์ของศูนย์บริการร่วมกระทรวงทรัพยากรธรรมชาติและสิ่งแวดล้อม



Copyright © 2024 MNRE Service Link Center All rights reserved.
เงื่อนไขบริการ | นโยบายความเป็นส่วนตัว