T

Text Machine

เครื่องมือข้อความทรงพลัง ในเบราว์เซอร์ของคุณ

รหัสฮิลล์

เข้ารหัสและถอดรหัสฮิลล์ รหัสคลาสสิกแบบหลายตัวอักษรที่สร้างขึ้นบนพีชคณิตเชิงเส้น ตัวอักษรถูกจัดกลุ่มเป็นบล็อก แปลงเป็นเวกเตอร์ตัวเลข แล้วคูณด้วยเมทริกซ์กุญแจมอดูโล 26: การเข้ารหัสคือ C = K·P การถอดรหัสคือ P = K⁻¹·C เลือกกุญแจ 2×2 หรือ 3×3 ดูเมทริกซ์แบบสด ดีเทอร์มิแนนต์ของมัน และอินเวอร์สมอดูลาร์ของมัน แล้วติดตามการคำนวณทีละบล็อก ทุกอย่างทำงานในเบราว์เซอร์ของคุณ

เมทริกซ์กุญแจ

กุญแจ (ตัวอักษร)

กุญแจคือตัวอักษร 4 ตัว (A=0 … Z=25) ที่เติมลงในเมทริกซ์ทีละแถว กุญแจ 2×2 เข้ารหัสตัวอักษรเป็นคู่ (ไดกราฟ)

ข้อความธรรมดา
ข้อความรหัส

ป้อนข้อความด้านบนเพื่อดูผลลัพธ์ที่นี่

เมทริกซ์กุญแจ

ตัวอักษรแต่ละบล็อกกลายเป็นเวกเตอร์ (A=0 … Z=25) และถูกคูณด้วยเมทริกซ์กุญแจมอดูโล 26 กุญแจจะใช้ได้ก็ต่อเมื่อดีเทอร์มิแนนต์ของมันมีอินเวอร์ส mod 26

C = K · P (mod 26)

ป้อนตัวอักษร (A–Z) ให้ได้ 4 ตัวพอดีเพื่อเติมเมทริกซ์กุญแจ

วิธีใช้ รหัสฮิลล์

  1. 1

    เลือกเข้ารหัสหรือถอดรหัส และขนาดเมทริกซ์

    เลือกเข้ารหัสเพื่อเข้ารหัสหรือถอดรหัสเพื่อถอดรหัส แล้วเลือกกุญแจ 2×2 (ตัวอักษรเป็นคู่) หรือกุญแจ 3×3 (ตัวอักษรเป็นสามตัว)

  2. 2

    ป้อนกุญแจเป็นตัวอักษร

    พิมพ์ตัวอักษรกุญแจที่เติมลงในเมทริกซ์ทีละแถว — สี่ตัวอักษรสำหรับกุญแจ 2×2 เก้าตัวสำหรับกุญแจ 3×3 เมทริกซ์แบบสดแสดงดีเทอร์มิแนนต์และบอกคุณว่ากุญแจมีอินเวอร์ส mod 26 หรือไม่

  3. 3

    พิมพ์หรือวางข้อความของคุณ

    ป้อนข้อความของคุณแล้วมันจะถูกแปลงขณะที่คุณพิมพ์ แผงการคำนวณแสดงแต่ละบล็อกเป็นเวกเตอร์ การคูณเมทริกซ์ และบล็อกผลลัพธ์

  4. 4

    ตรวจสอบเมทริกซ์กุญแจและอินเวอร์ส

    เปิดแผงเมทริกซ์กุญแจเพื่อดูกุญแจ ดีเทอร์มิแนนต์ของมัน และ — เมื่อกุญแจใช้ได้ — เมทริกซ์อินเวอร์สมอดูลาร์ที่ใช้ในการถอดรหัส

  5. 5

    คัดลอก ดาวน์โหลด หรือแชร์

    คัดลอกผลลัพธ์ ดาวน์โหลดเป็นไฟล์ข้อความ หรือแชร์ลิงก์ที่จะเปิดเครื่องมือขึ้นมาใหม่พร้อมข้อความ กุญแจ ขนาด และทิศทางที่แน่นอนของคุณพร้อมใช้งานทันที

ทำความเข้าใจรหัสฮิลล์

รหัสฮิลล์คืออะไร

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

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

รหัสฮิลล์ทำงานอย่างไร

ก่อนอื่น แปลงตัวอักษรเป็นตัวเลขด้วย A=0, B=1 ไปจนถึง Z=25 กุญแจคือเมทริกซ์ n×n ของตัวเลขเช่นนั้น ที่นี่คุณพิมพ์มันเป็นชุดตัวอักษรที่เติมลงในเมทริกซ์ทีละแถว ดังนั้นกุญแจ 2×2 ต้องใช้สี่ตัวอักษรและกุญแจ 3×3 ต้องใช้เก้าตัวอักษร ข้อความธรรมดาถูกแบ่งเป็นบล็อกของตัวอักษร n ตัว แต่ละบล็อกเขียนเป็นเวกเตอร์คอลัมน์

ในการเข้ารหัสบล็อก P ให้คำนวณ C = K · P (mod 26): คูณเมทริกซ์กุญแจด้วยเวกเตอร์และลดทุกค่าลงมอดูโล 26 แล้วอ่านตัวเลขกลับเป็นตัวอักษร ในการถอดรหัส คุณต้องการอินเวอร์สมอดูลาร์ของเมทริกซ์กุญแจ K⁻¹ และคำนวณ P = K⁻¹ · C (mod 26) อินเวอร์สมีอยู่ก็ต่อเมื่อดีเทอร์มิแนนต์ของเมทริกซ์มีอินเวอร์สมอดูโล 26 — นั่นคือเมื่อมันไม่มีตัวประกอบร่วมกับ 26 — ซึ่งเป็นกฎที่สำคัญที่สุดเพียงข้อเดียวในการเลือกกุญแจ

การเลือกเมทริกซ์กุญแจที่ใช้ได้

ไม่ใช่ทุกเมทริกซ์ที่จะเป็นกุญแจฮิลล์ได้ เพื่อให้การถอดรหัสทำงานได้ ดีเทอร์มิแนนต์ของกุญแจที่หามอดูโล 26 ต้องเป็นจำนวนเฉพาะสัมพัทธ์กับ 26 เนื่องจาก 26 = 2 × 13 ดีเทอร์มิแนนต์ต้องเป็นเลขคี่และไม่ใช่พหุคูณของ 13 ค่าที่อนุญาตคือสิบสองจำนวน 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25 หากดีเทอร์มิแนนต์เป็นเลขคู่หรือเท่ากับ 13 จะไม่มีอินเวอร์สมอดูลาร์อยู่และข้อความรหัสจะถอดได้ไม่ซ้ำกัน

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

ตัวอย่างประกอบ 2×2

ลองนำกุญแจ DDCF ซึ่งเติมเมทริกซ์ 2×2 ด้วยตัวเลข 3, 3 บนแถวบนและ 2, 5 บนแถวล่าง ดีเทอร์มิแนนต์ของมันคือ 3×5 − 3×2 = 9 และเพราะ 9 เป็นจำนวนเฉพาะสัมพัทธ์กับ 26 กุญแจจึงใช้ได้ ทีนี้เข้ารหัส HELP บล็อกแรก HE คือเวกเตอร์ (7, 4): การคูณให้ (3×7 + 3×4, 2×7 + 5×4) = (33, 34) ซึ่งลดลง mod 26 เป็น (7, 8) = HI

บล็อกที่สอง LP คือ (11, 15) ให้ (3×11 + 3×15, 2×11 + 5×15) = (78, 97) = (0, 19) = AT ดังนั้น HELP เข้ารหัสเป็น HIAT ในการถอดรหัส เครื่องมือจะหาอินเวอร์สของกุญแจเป็น (15, 17 / 20, 9) และคูณบล็อกรหัสแต่ละบล็อกด้วยมัน กู้คืน HELP กลับมา พิมพ์ DDCF เป็นกุญแจด้านบนเพื่อดูทุกขั้นตอนปรากฏในแผงการคำนวณแบบสด

ตัวอย่างประกอบ 3×3

ตัวอย่าง 3×3 คลาสสิกใช้กุญแจ GYBNQKURP ซึ่งเติมเมทริกซ์ด้วย 6, 24, 1 บนแถวแรก 13, 16, 10 บนแถวที่สอง และ 20, 17, 15 บนแถวที่สาม การเข้ารหัสไตรกราฟ ACT — เวกเตอร์ (0, 2, 19) — ให้ (67, 222, 319) ก่อนการลด ซึ่งกลายเป็น (15, 14, 7) มอดูโล 26 หรือ POH

ดีเทอร์มิแนนต์ของเมทริกซ์นี้คือ 25 มอดูโล 26 ซึ่งเป็นจำนวนเฉพาะสัมพัทธ์กับ 26 ดังนั้นมันจึงเป็นกุญแจที่ใช้ได้ และอินเวอร์สมอดูลาร์ของมันคือเมทริกซ์ (8, 5, 10 / 21, 8, 21 / 21, 12, 8) การคูณบล็อกรหัส POH ด้วยอินเวอร์สนั้นคืน ACT กลับมา สลับตัวเลือกขนาดไปที่ 3×3 และป้อน GYBNQKURP เพื่อจำลองตัวอย่างในตำราเรียนนี้และดูเมทริกซ์อินเวอร์สที่เครื่องมือหาได้

การเติม ตัวอักษร และการจัดรูปแบบ

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

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

ความปลอดภัยและการวิเคราะห์รหัส

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

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

คำถามที่พบบ่อย

รหัสฮิลล์คืออะไร
รหัสฮิลล์เป็นรหัสแทนที่แบบหลายตัวอักษรคลาสสิกที่สร้างขึ้นโดย Lester S. Hill ในปี 1929 มันเข้ารหัสตัวอักษรเป็นบล็อกโดยแปลงแต่ละบล็อกเป็นเวกเตอร์ของตัวเลขและคูณด้วยเมทริกซ์กุญแจลับมอดูโล 26 เพราะตัวอักษรผลลัพธ์ทุกตัวขึ้นอยู่กับทั้งบล็อก มันจึงซ่อนความถี่ของตัวอักษรเดี่ยวและเป็นรหัสตัวแรกที่นำพีชคณิตเชิงเส้นมาใช้ในการเข้ารหัสอย่างได้ผลจริง
รหัสฮิลล์ทำงานอย่างไร
ตัวอักษรกลายเป็นตัวเลข (A=0 … Z=25) ข้อความธรรมดาถูกแบ่งเป็นบล็อกของตัวอักษร n ตัว แต่ละบล็อกเขียนเป็นเวกเตอร์ และเข้ารหัสด้วย C = K·P (mod 26) โดยใช้เมทริกซ์กุญแจ n×n ชื่อ K การถอดรหัสใช้อินเวอร์สมอดูลาร์ของกุญแจ: P = K⁻¹·C (mod 26) กุญแจ 2×2 ทำงานกับคู่ตัวอักษรและกุญแจ 3×3 ทำงานกับสามตัว
ฉันเลือกกุญแจรหัสฮิลล์ที่ใช้ได้อย่างไร
เมทริกซ์กุญแจถอดรหัสได้ก็ต่อเมื่อดีเทอร์มิแนนต์ของมันที่หามอดูโล 26 เป็นจำนวนเฉพาะสัมพัทธ์กับ 26 เพราะ 26 = 2 × 13 ดีเทอร์มิแนนต์ต้องเป็นเลขคี่และไม่ใช่พหุคูณของ 13 — หนึ่งใน 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 หรือ 25 เครื่องมือนี้แสดงดีเทอร์มิแนนต์แบบสดและทำเครื่องหมายว่ากุญแจมีอินเวอร์สหรือไม่ ดังนั้นคุณจึงปรับตัวอักษรได้จนกว่ามันจะใช้ได้
ขอตัวอย่างประกอบของรหัสฮิลล์ได้ไหม
ด้วยกุญแจ 2×2 DDCF (แถว 3,3 และ 2,5 ดีเทอร์มิแนนต์ 9) คำว่า HELP เข้ารหัสเป็น HIAT: HE = (7,4) แมปไปเป็น (7,8) = HI และ LP = (11,15) แมปไปเป็น (0,19) = AT ด้วยกุญแจ 3×3 GYBNQKURP ไตรกราฟ ACT เข้ารหัสเป็น POH ป้อนกุญแจใดก็ได้ด้านบนเพื่อดูทุกบล็อกและการคูณเมทริกซ์ปรากฏทีละขั้นตอน
คุณถอดรหัสฮิลล์อย่างไร
การถอดรหัสคูณบล็อกรหัสแต่ละบล็อกด้วยอินเวอร์สมอดูลาร์ของเมทริกซ์กุญแจ P = K⁻¹·C (mod 26) ในเครื่องมือนี้ เลือกถอดรหัส ตั้งขนาดเมทริกซ์เดียวกัน และป้อนกุญแจเดียวกันกับที่ใช้เข้ารหัส มันจะคำนวณอินเวอร์สและสร้างข้อความธรรมดาขึ้นใหม่ กุญแจต้องมีอินเวอร์ส mod 26 มิฉะนั้นจะไม่มีอินเวอร์ส — และจึงไม่มีการถอดรหัสที่ซ้ำกันได้ — อยู่
อะไรคือความแตกต่างระหว่างรหัสฮิลล์ 2×2 และ 3×3
ขนาดเมทริกซ์กำหนดความยาวบล็อก กุญแจ 2×2 เข้ารหัสตัวอักษรครั้งละสองตัวและต้องใช้กุญแจสี่ตัวอักษร กุญแจ 3×3 เข้ารหัสครั้งละสามตัวและต้องใช้กุญแจเก้าตัวอักษร เมทริกซ์ที่ใหญ่กว่าผสมตัวอักษรมากขึ้นต่อบล็อกและต้านทานการวิเคราะห์ความถี่ได้ดีกว่าเล็กน้อย แต่ตั้งค่าได้ยากกว่าและยังคงล้มต่อการโจมตีแบบรู้ข้อความธรรมดา
ทำไมกุญแจของฉันจึงบอกว่าไม่มีอินเวอร์ส
กุญแจฮิลล์ถอดรหัสได้ก็ต่อเมื่อดีเทอร์มิแนนต์ของเมทริกซ์ของมันเป็นจำนวนเฉพาะสัมพัทธ์กับ 26 หากดีเทอร์มิแนนต์เป็นเลขคู่หรือเป็นพหุคูณของ 13 เมทริกซ์จะไม่มีอินเวอร์สมอดูโล 26 และข้อความรหัสจะถอดได้ไม่ซ้ำกัน เปลี่ยนตัวอักษรหนึ่งหรือสองตัวของกุญแจและดูดีเทอร์มิแนนต์อัปเดตจนกระทั่งเครื่องมือทำเครื่องหมายว่ากุญแจมีอินเวอร์ส
จะเกิดอะไรขึ้นกับช่องว่าง ตัวเลข และเครื่องหมายวรรคตอน
มีเพียงตัวอักษร A–Z เท่านั้นที่อยู่ในรหัสฮิลล์ ดังนั้นช่องว่าง ตัวเลข และเครื่องหมายวรรคตอนจึงถูกนำออกก่อนการเข้ารหัสและจะไม่ปรากฏกลับมาเมื่อคุณถอดรหัส หากความยาวข้อความไม่เป็นพหุคูณของขนาดบล็อก มันจะถูกเติมด้วยตัวอักษร X เพื่อเติมบล็อกสุดท้าย ดังนั้นข้อความที่ถอดได้อาจลงท้ายด้วยตัวอักษรพิเศษหนึ่งหรือสองตัว
รหัสฮิลล์ปลอดภัยหรือไม่
ไม่ รหัสฮิลล์เป็นเชิงเส้น ดังนั้นผู้โจมตีที่ได้คู่บล็อกข้อความธรรมดา–ข้อความรหัสมากพอสามารถแก้ระบบสมการเชิงเส้นและกู้คืนเมทริกซ์กุญแจได้ สำหรับกุญแจ n×n บล็อกที่รู้ราว n บล็อกมักจะเพียงพอ มันยอดเยี่ยมสำหรับการเรียนรู้ว่าเมทริกซ์และเลขคณิตมอดูลาร์สร้างรหัสบล็อกอย่างไร แต่สำหรับการปกป้องจริง คุณควรใช้อัลกอริทึมสมัยใหม่เช่น AES เสมอ
ใครคิดค้นรหัสฮิลล์
รหัสฮิลล์ถูกคิดค้นโดย Lester S. Hill นักคณิตศาสตร์ชาวอเมริกัน และเผยแพร่ในปี 1929 ในวารสาร The American Mathematical Monthly มันโดดเด่นในการเป็นรหัสตัวแรกที่สามารถเข้ารหัสบล็อกของตัวอักษรมากกว่าสามตัวได้ในระดับที่ใช้งานได้จริง และมันแนะนำพีชคณิตเมทริกซ์และเลขคณิตมอดูลาร์เป็นเครื่องมือในการเข้ารหัส — แนวคิดที่สะท้อนอยู่ในการออกแบบรหัสบล็อกสมัยใหม่
อินเวอร์สมอดูลาร์ของเมทริกซ์คืออะไร
มันคือเมทริกซ์ที่เมื่อคูณด้วยกุญแจมอดูโล 26 แล้วให้เมทริกซ์เอกลักษณ์ สำหรับกุญแจ 2×2 หรือ 3×3 มันหาได้โดยการคูณแอดจูเกต (เมทริกซ์โคแฟกเตอร์ที่สลับเปลี่ยน) ด้วยอินเวอร์สมอดูลาร์ของดีเทอร์มิแนนต์ รหัสฮิลล์ใช้มันเพื่อยกเลิกการเข้ารหัส และเครื่องมือนี้แสดงอินเวอร์สที่มันคำนวณได้ทุกครั้งที่กุญแจใช้ได้
ข้อความของฉันถูกอัปโหลดไปยังเซิร์ฟเวอร์หรือไม่
ไม่ การเข้ารหัสและถอดรหัสทั้งหมดเกิดขึ้นภายในเบราว์เซอร์ของคุณทั้งหมด ข้อความและกุญแจของคุณจึงไม่ถูกอัปโหลด บันทึก หรือจัดเก็บ แม้แต่ลิงก์สำหรับแชร์ก็ยังเก็บข้อความและกุญแจของคุณไว้ในส่วนของ URL ที่อยู่หลังเครื่องหมายแฮช ซึ่งเบราว์เซอร์จะไม่ส่งไปยังเซิร์ฟเวอร์ ดังนั้นข้อความของคุณจึงยังคงเป็นส่วนตัวจนกว่าคุณจะเลือกแชร์ลิงก์

เครื่องมือที่เกี่ยวข้อง

ทำงานต่อด้วยเครื่องมือที่มีประโยชน์เหล่านี้

รหัสสี่ช่อง

รหัสสองช่อง

รหัสซีซาร์

รหัสลับวีฌ์แนร์

รหัสแอตบาช

รหัสเรลเฟนซ์