ตัวเข้ารหัสซ่อนข้อมูล
ซ่อนข้อความไว้ในตารางตัวเลข — ตัวอ้างอิงคู่ กางเขนหูหิ้ว + ฌักการ์
ดูเดโมแบบโต้ตอบ Carter Random (ภาษาฝรั่งเศส) — แสดงภาพตาราง (ตัวอ้างอิงที่ได้จากคีย์) เปิดให้ใช้ได้โดยเสรี
กำลังโหลดตัวอ้างอิง…
การสาธิต: ข้อความ ANIBALAMIOTX
ANIBALAMIOTX ถูกเข้ารหัสด้วย XChaCha20-Poly1305 ก่อน (คีย์หลักขนาด 256 บิต) จากนั้นข้อความที่เข้ารหัสแล้วจะถูกกระจายลงบนบล็อกที่คีย์เดียวกันนั้นกำหนดให้เป็น “ข้อความ” ในตาราง 90×90 — ส่วนที่เหลือเป็นสัญญาณรบกวนที่แยกไม่ออก รวมถึงบล็อก “มีโครงสร้าง” ซึ่งหากไม่มีคีย์ก็เหมือนกับบล็อก “ข้อความ” ในเชิงสถิติ ความลับมาจากการเข้ารหัส ส่วนเรขาคณิตทำหน้าที่เพียงซ่อนตำแหน่งของข้อความที่เข้ารหัสแล้ว
การแลกเปลี่ยนคีย์ — X25519 แบบยืนยันตัวตน (triple DH)
คู่สื่อสารสองฝ่ายได้เซสชันเดียวกันโดยไม่ต้องส่งความลับใด ๆ การสร้างคีย์ใช้ Diffie-Hellman สามชุด: ชั่วคราว × ชั่วคราว เพื่อ forward secrecy จากนั้น ชั่วคราว × ตัวตน ของแต่ละฝ่าย ซึ่งผูกตัวตนระยะยาวเข้ากับเซสชัน ตัวกลางที่สอดแทรกคีย์ชั่วคราวของตนเองเข้ามาไม่มีคีย์ส่วนตัวของตัวตนฝ่ายใดเลย จึงคำนวณคีย์ไม่ได้ ใช้โปรโตคอลเดียวกับ CLI Python — เซสชันที่สร้างที่นี่และเซสชันที่สร้างด้วย secu-box exchange จะได้คีย์เดียวกัน
เกี่ยวกับตัวตนของคุณ: คีย์ส่วนตัวถูกเก็บในเบราว์เซอร์นี้ในรูปแบบที่โค้ดของหน้าเว็บอ่านไม่ได้ — ทำได้เพียงใช้คีย์นั้นเพื่อสร้างเซสชัน ข้อแลกเปลี่ยนคือ ไม่สามารถสำรองหรือย้ายคีย์ไปยังเบราว์เซอร์อื่นได้ การล้างข้อมูลของเว็บไซต์จะทำลายคีย์อย่างถาวร พร้อมกับ fingerprint ที่คู่สื่อสารของคุณรู้จัก ตัวตนจาก CLI Python ก็นำเข้าที่นี่ไม่ได้เช่นกัน: แต่ละฝ่ายเก็บตัวตนของตนไว้ ซึ่งไม่ได้ขัดขวางให้ทั้งสองฝ่ายสื่อสารกัน
ขั้นที่ 0 — ตัวตนของคุณ
ขั้นที่ 1 — offer ของคุณ
ขั้นที่ 2 — offer ของคู่สื่อสาร
คีย์เซสชันถูกเก็บในเบราว์เซอร์ของคุณ (localStorage) การล้างประวัติหรือการใช้โหมดท่องเว็บแบบส่วนตัวจะลบคีย์เหล่านี้ ไม่มีข้อมูลใดถูกส่งไปยังเซิร์ฟเวอร์
เซสชันที่ใช้งานอยู่
ส่งด้วยเซสชันที่ใช้งานอยู่
เข้ารหัสข้อความ (คีย์อิสระ)
ตาราง Carter (ไวยากรณ์ที่ได้จากคีย์)
passphrase เดียวสร้างทั้งคีย์เข้ารหัสและไวยากรณ์ของตาราง (บทบาท — บริสุทธิ์ / มีโครงสร้าง / ข้อความ — และรูปทรงของแต่ละบล็อก) ด้วย HKDF-SHA256 — ไม่มีการจัดวางใดถูกเก็บไว้นอกคีย์ บล็อก “มีโครงสร้าง” และ “ข้อความ” แยกไม่ออกในเชิงสถิติหากไม่มีคีย์ การเข้ารหัสแต่ละครั้งจะสุ่มซอลต์ใหม่และแสดงให้เห็นภายหลัง: ให้ส่งไปพร้อมกับ passphrase ซอลต์ไม่ใช่ความลับและไม่อยู่ใน CSV แต่หากไม่มีซอลต์ ตารางจะยังคงเปิดไม่ได้ — และซอลต์นี้เองที่ป้องกันไม่ให้ตารางที่คำนวณไว้ล่วงหน้าจาก passphrase ยอดนิยมเปิดตารางของผู้ใช้ทุกคนได้ในคราวเดียว
ถอดรหัสด้วยเซสชันที่ใช้งานอยู่
ถอดรหัสด้วยคีย์ที่ป้อนเอง
โหลดจากไฟล์
ถอดรหัสตาราง Carter
Vault ที่เข้ารหัส — ไฟล์
เข้ารหัสไฟล์ของคุณในเบราว์เซอร์ (AES-256-GCM ต่อรายการ, manifest ที่เข้ารหัส, HMAC-SHA256 ทั้งชุด — รูปแบบได้แรงบันดาลใจจาก vault_lib.py) ไม่มีไฟล์หรือ passphrase ใดถูกส่งไปยังเซิร์ฟเวอร์
secu-box vault (ดูแท็บ เกี่ยวกับ)เพิ่มไฟล์
เนื้อหาของ vault
ส่งออก
ตัวอ้างอิง 256 — ตารางรูปทรงของกางเขนหูหิ้ว
รูปแบบเรขาคณิตที่แตกต่างกัน 256 แบบ: ไม่ใช่การหมุน แต่เป็นการระบายสีทั้งหมดที่เป็นไปตามเกณฑ์ I ถึง IV ของกางเขนหูหิ้ว (นับครบทุกกรณี 128 แบบต่อไครัลลิตี EGO/ALTER — ดูบทความ The Ansate Cross) วางเมาส์เหนือช่องเพื่อดูตำแหน่ง ×2 สี = 512 รูปทรงที่ใช้ได้
ตัวอ้างอิง 360 — แผ่นลายฌักการ์
60 ภาพ × 6 ระดับ = 360 แผ่นลาย (15 ตระกูล × 4 ลักษณะ) แต่ละแผ่นลายเลือกตำแหน่งอ่าน 8 ตำแหน่งในบล็อก 12×12 (— รูปทรงที่สกัดจากไฟล์ SVG ต้นฉบับ)
การซ่อนข้อมูลเชิงเรขาคณิต — เข้ารหัสก่อนแล้วจึงซ่อน
ระบบนี้เป็นการประยุกต์ด้านวิทยาการเข้ารหัสของโครงสร้างเลขาคณิตศาสตร์ที่พัฒนาไว้ใน La Livrée d'Hermès (Anibal Edelberto Amiot, 2026) ส่งไปยัง IACR Cryptology ePrint Archive ในเดือนกันยายน 2026 สถาปัตยกรรมได้รับการทบทวนหลังการตรวจสอบด้านวิทยาการเข้ารหัสจากภายนอก (2026-09-10)
คีย์หลัก: 256 บิต สร้างแบบสุ่ม (หรือได้จาก passphrase หรือจากเซสชัน Exchange) คีย์เดียวถูกแยกด้วย HKDF-SHA256 เป็นคีย์เข้ารหัสและคีย์ไวยากรณ์ — การใช้งานทั้งสองนี้ไม่เคยใช้วัสดุคีย์เดียวกัน
ไวยากรณ์: คีย์ไวยากรณ์กำหนดบทบาท (บริสุทธิ์ / มีโครงสร้าง / ข้อความ) และรูปทรงให้แต่ละบล็อกของตาราง โดยสุ่มเลือกจากตัวอ้างอิง 256 (กางเขนหูหิ้ว) หรือจากตัวอ้างอิง 6×6 ที่สร้างใหม่สำหรับ Carter-Random บล็อก “มีโครงสร้าง” และ “ข้อความ” แยกจากกันไม่ออกในเชิงสถิติหากไม่มีคีย์ — บล็อกเหล่านี้มีอยู่เพื่อเหตุผลนี้โดยเฉพาะ ไม่ได้มีไว้บรรจุเนื้อหา
การยืนยันความถูกต้อง: คีย์หรือข้อมูลที่ไม่ถูกต้องจะล้มเหลวในการยืนยันความถูกต้องอย่างชัดแจ้ง (Poly1305) ไม่มีวันถูกแสดงผลเป็นการอ่านที่ผิดแต่ดูน่าเชื่อ
รูปแบบ: Carter-256 (ตัวอ้างอิงกางเขนหูหิ้วแบบคงที่) และ Carter-Random (ตัวอ้างอิง 6×6 ที่สร้างใหม่ตามคีย์) ถูกพอร์ตและตรวจสอบใน JavaScript เทียบกับเวกเตอร์ที่สร้างโดยโค้ด Python รูปแบบอื่นของระบบเดียวกัน (Deniable, Carter-360, Carter-Mix, Carter-18, Carter-Hybrid) มีอยู่ในฝั่ง Python แต่ยังไม่ได้พอร์ตมายังเบราว์เซอร์
สิทธิบัตรก่อนหน้า: FR2865054 (2004) — การประกอบลวดลายเชิงสัญลักษณ์โดยอัตโนมัติจากความสัมพันธ์ทางคณิตศาสตร์
ติดต่อ: anibaledel@gmail.com · anibal-amiot.com · Wikidata Q141191562
สถาปัตยกรรม SecuBox
SecuBox ประกอบด้วยองค์ประกอบอิสระห้าส่วน แต่ละส่วนมีเอกสารและได้รับการตรวจสอบแยกกันในแท็บของตนเอง:
secu-box exchange จะได้คีย์เดียวกัน — ตรวจสอบแล้วด้วยการสร้างเซสชันไขว้ระหว่างสองการใช้งาน มีเพียงตัวตนเท่านั้นที่ย้ายข้ามฝั่งไม่ได้: CLI ปกป้องตัวตนของตนด้วย Argon2id ซึ่งไม่มีใน Web Crypto และตัวตนของเบราว์เซอร์ถูกออกแบบให้ดึงออกไม่ได้ แต่ละฝั่งจึงเก็บตัวตนของตนไว้2. ข้อความ / ถอดรหัส — การซ่อนข้อมูลเชิงเรขาคณิต Carter (ดูด้านบน) โดยใช้คีย์หลักที่ได้จากเซสชัน Exchange ที่ใช้งานอยู่ จาก passphrase หรือป้อนโดยตรง
3. Vault — การเข้ารหัสไฟล์ภายในเครื่อง AES-256-GCM ต่อรายการ, manifest ที่เข้ารหัส, HMAC-SHA256 ทั้งชุด (สถาปัตยกรรมได้แรงบันดาลใจจาก
vault_lib.py)4. การเข้ารหัสไฟล์ — SPN เชิงเรขาคณิต (Ref256+Ref360) เป็นชั้นกระจายคีย์ และ AES-256-GCM เป็นชั้นการเข้ารหัสแบบยืนยันความถูกต้อง (ดูแท็บ การเข้ารหัส)
5. ตัวอ้างอิง 256 และ 360 — ตารางรูปทรงเรขาคณิต (กางเขนหูหิ้ว, ฌักการ์) ที่ป้อนข้อมูลให้องค์ประกอบข้างต้น
หมายเหตุเรื่องการทดแทนอัลกอริทึมเข้ารหัส: องค์ประกอบ ข้อความ/ถอดรหัส (2) ใช้ XChaCha20-Poly1305 ใน JavaScript ล้วน เหมือนกับต้นแบบ Python (
stegano/carter.py, stegano/carter_random.py) และตรวจสอบเทียบกับเวกเตอร์ของต้นแบบแล้ว — ส่วนนี้ไม่มีการทดแทนอีกต่อไป Vault (3) และการเข้ารหัสไฟล์ (4) ยังคงใช้ AES-256-GCM ที่มีในตัวเบราว์เซอร์ เนื่องจาก API Web Crypto ไม่มี XChaCha20-Poly1305 ให้สององค์ประกอบนี้ใช้ ระดับการรับประกันเดียวกัน (AEAD, 256 บิต, มาตรฐานที่ผ่านการตรวจสอบ) X25519 ถูกใช้งานแบบมีในตัวและเหมือนกันทั้งสองฝั่งความต่างที่ทราบอยู่แล้ว — การสร้างคีย์ของ Vault: ตั้งแต่เวอร์ชัน 1.2
vault_lib.py ใช้ Argon2id (memory-hard ทนต่อ GPU/ASIC) แทน PBKDF2 สำหรับการสร้างคีย์ภายใน เบราว์เซอร์ไม่มีทั้ง Argon2id และ scrypt ในตัว — ต่างจากกรณีข้างต้น ไม่มีสิ่งเทียบเท่าใน Web Crypto ที่จะนำมาทดแทนได้โดยไม่เพิ่มการพึ่งพาภายนอก Vault ของหน้านี้จึงยังคงใช้ PBKDF2 (300 000 รอบ) และด้วยเหตุนี้จึงทนต่อ brute-force ด้วย GPU/ASIC ได้น้อยกว่าฝั่ง Python สำหรับการใช้งานที่อ่อนไหวในระบบจริง ควรใช้ CLI Python (secu-box vault)คำเตือนทั่วไป: SecuBox เป็นระบบทดลองที่ตั้งอยู่บนโครงสร้างเรขาคณิตที่คิดขึ้นใหม่ ชั้นวิทยาการเข้ารหัส (AES-256-GCM, X25519, HKDF, PBKDF2) เป็นมาตรฐานและผ่านการตรวจสอบแล้ว ชั้นเรขาคณิต (La Livrée d'Hermès) อยู่ระหว่างการประเมินอย่างเป็นทางการ — ดูการตรวจสอบด้านวิทยาการเข้ารหัสจากภายนอกวันที่ 2026-09-10 ที่กล่าวถึงในแท็บ การเข้ารหัส และ ถอดรหัส
การเข้ารหัสแบบผสม — เชิงเรขาคณิต + AES-256-GCM
สถาปัตยกรรมสองชั้น ซึ่งปรับตามการตรวจสอบด้านวิทยาการเข้ารหัสจากภายนอก: ชั้นเรขาคณิต (SPN Ref256+Ref360, S-box GF(2⁸), 4 รอบ) สร้างคีย์เซสชันเฉพาะสำหรับแต่ละเซกเตอร์ — เป็นการกระจายคีย์ ไม่ใช่ตัวการเข้ารหัสเอง — จากนั้น AES-256-GCM เข้ารหัสและยืนยันความถูกต้องของแต่ละเซกเตอร์แยกกัน โดยมีการยืนยันความถูกต้อง HMAC-SHA256 ทั้งชุดซ้อนอยู่ด้านบน passphrase ที่ไม่ถูกต้องหรือไฟล์ที่ถูกแก้ไขจะถูกตรวจพบ ไม่มีวันกลายเป็นสัญญาณรบกวนแบบเงียบ ๆ แยกต่างหากจากเครื่องมือซ่อนข้อมูลด้านบน ทำงานฝั่งไคลเอนต์ทั้งหมด: passphrase และไฟล์ไม่เคยออกจากเบราว์เซอร์
ป้อนเพียงครั้งเดียว ใช้โดยตรงกับปุ่ม เข้ารหัส และ ถอดรหัส ด้านล่าง
เข้ารหัสไฟล์
ถอดรหัสไฟล์
passphrase ที่ไม่ถูกต้องหรือไฟล์ที่ถูกแก้ไขจะทำให้เกิดข้อผิดพลาดอย่างชัดแจ้ง (การตรวจสอบ HMAC-SHA256) แทนที่จะให้ผลเป็นสัญญาณรบกวนแบบเงียบ ๆ
สถิติด้านความปลอดภัย
สัญญาอนุญาต
ซอฟต์แวร์นี้เผยแพร่ภายใต้ GNU AGPL v3
สัญญาอนุญาตเชิงพาณิชย์ตามคำขอ สำหรับการใช้งานโดยไม่มีข้อผูกพันของ AGPL (การผนวกเข้ากับผลิตภัณฑ์ การใช้งานด้านกลาโหม บริการแบบเสียค่าใช้จ่าย): anibaledel@gmail.com — ดูเพิ่มเติมที่ สัญญาอนุญาตเชิงพาณิชย์
อัลกอริทึมอธิบายไว้ใน IACR ePrint 2026 (CC BY) · สิทธิบัตรก่อนหน้า: FR2865054 · Wikidata Q141191562

