เครื่องสร้างคู่กุญแจ RSA (RSA Key Pair Generator)

ขนาดคีย์ (บิต)
ถัดไป

คู่กุญแจ RSA ประกอบด้วยตัวเลขสองตัวที่เชื่อมโยงกันทางคณิตศาสตร์ ได้แก่ กุญแจสาธารณะที่ให้ผู้อื่นใช้งาน และกุญแจส่วนตัวที่คุณเก็บรักษาไว้ เครื่องมือนี้สร้างทั้งสองกุญแจด้วยรูปแบบการเข้ารหัส PEM มาตรฐาน โดยใช้แหล่งข้อมูลสุ่มที่ปลอดภัยทางการเข้ารหัส สามารถใช้เครื่องมือนี้ในการเริ่มต้นการทำงานของตัวลงนาม JWT สร้างใบรับรอง TLS สำหรับระบบจำลอง (staging box) หรือออกตัวตน SSH โดยไม่จำเป็นต้องใช้บรรทัดคำสั่ง

วิธีการสร้างคู่กุญแจ RSA

  1. 1

    เลือกขนาดของกุญแจ

    เลือกขนาด 2048, 3072 หรือ 4096 บิต โดยกุญแจที่ยาวกว่าจะมีความปลอดภัยสูงขึ้น แต่กระบวนการลงนามและการตรวจสอบจะใช้เวลานานกว่า

  2. 2

    สร้างขึ้น

    เครื่องมือนี้สร้างโมดูลัสใหม่และค่าเอ็กซ์โพเนนต์ส่วนตัวโดยใช้พื้นฐานการประมวลผลของ WebCrypto

  3. 3

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

    ดึงกุญแจส่วนตัวที่เข้ารหัสด้วย PEM (BEGIN PRIVATE KEY) และกุญแจสาธารณะที่ตรงกัน (BEGIN PUBLIC KEY)

  4. 4

    จัดเก็บกุญแจส่วนตัวอย่างปลอดภัย

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

คุณควรใช้ขนาดกุญแจใดดี?

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

คำแนะนำของ NIST โดยสรุป

ขนาดกุญแจ ระดับความปลอดภัย การใช้งานทั่วไป ต้นทุนการลงนามสัมพัทธ์
2048 บิต ~112 บิต การลงนามด้วย JWT, ใบรับรอง TLS ที่มีอายุสั้น, API ส่วนใหญ่ 1 เท่า
3072 บิต ~128 บิต หน่วยยืนยันต้นทาง (CA) ที่มีอายุการใช้งานยาวนาน และเป็นไปตามมาตรฐาน FIPS > 2030 ~3 เท่า
4096 บิต ~140 บิต รากฐานความปลอดภัยสูง การลงนามในเอกสารระยะยาว ~7 เท่า

บทบาทของ PEM

กุญแจถูกเข้ารหัสด้วยรูปแบบ PKCS#8/SPKI และฐาน 64 โดยอยู่ระหว่างเครื่องหมาย -----BEGIN----- ถึง -----END----- ซึ่งเป็นรูปแบบที่ไลบรารีหลักทั้งหมดคาดหวังไว้ ได้แก่ OpenSSL, crypto ของ Node.js, cryptography ของ Python, crypto/rsa ของ Go และ KeyFactory ของ Java

คำแนะนำในการปฏิบัติงาน

  • ควรหมุนกุญแจลงนามที่มีการใช้งานอย่างแพร่หลายอย่างน้อยปีละครั้ง
  • สำหรับระบบใหม่ ควรเลือกใช้ ECDSA (P-256) หรือ Ed25519 เนื่องจากมีความเร็วสูงกว่า และขนาดของลายเซ็นจะเล็กกว่ามาก
  • อย่าใช้คู่กุญแจซ้ำในระบบที่ไม่เกี่ยวข้องกันเด็ดขาด หากข้อมูลของคู่กุญแจใดๆ รั่วไหลออกไป ทุกส่วนที่อยู่ตามลำดับการทำงานจะถูกทำให้เสียหาย
  • ควรใช้คำผ่านเมื่อจัดเก็บกุญแจส่วนตัวไว้ในดิสก์ โดย PEM ที่ถูกเข้ารหัส (BEGIN ENCRYPTED PRIVATE KEY) เป็นมาตรฐานที่ใช้กันโดยทั่วไป

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

ใช่ สำหรับการลงชื่อเข้าใช้งานผ่าน API และเซสชันส่วนใหญ่ NIST และ BSI ยังคงถือว่า RSA ขนาด 2048 บิตเป็นทางเลือกที่เหมาะสมจนถึงอย่างน้อยปี 2030 อย่างไรก็ตาม แนะนำให้ใช้ RSA ขนาด 3072 บิตสำหรับกรณีที่ต้องการความปลอดภัยในระยะเวลานานกว่านั้น

กุญแจส่วนตัวของ PEM จะทำงานร่วมกับ ssh-keygen -y -f key.pem เพื่อสร้างกุญแจสาธารณะ ssh-rsa สำหรับการใช้งาน SSH ในชีวิตประจำวัน ควรเลือกใช้ Ed25519 เนื่องจากกุญแจมีขนาดเล็กและมีความเร็วในการประมวลผลสูงกว่า

อันดับแรกคือ PKCS#1 (ใช้เฉพาะ RSA) อันดับที่สองคือ PKCS#8 (ซึ่งเป็นฟังก์ชันหุ้มที่ไม่ขึ้นอยู่กับอัลกอริทึม) และเป็นทางเลือกที่ไลบรารีสมัยใหม่ส่วนใหญ่แนะนำ โปรแกรมนี้จะสร้างผลลัพธ์ในรูปแบบของ PKCS#8

ไม่ใช่เช่นนั้น การสร้างกุญแจจะดำเนินการผ่าน WebCrypto API ภายในระบบเอง โดยไฟล์ PEM จะถูกสร้างขึ้นในหน่วยความจำก่อนที่จะแสดงผลบนหน้าเว็บ

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

ตัวระบุการเข้ารหัส

วางไซเฟอร์เท็กซ์หรือแฮช แล้วตัวระบุจะแนะนำอัลกอริทึมหรือการเข้ารหัสที่น่าจะเป็น: MD5, SHA, bcrypt, AES, RSA, Base64 และอื่น ๆ

ตัวเข้ารหัสไฟล์ Base64

เข้ารหัสไฟล์ใดก็ได้ (PDF, ZIP, รูปภาพ, ไฟล์ปฏิบัติการ) เป็นข้อความ Base64 เพื่อฝังใน JSON, อีเมล, YAML หรือ data URI ทำงานในเครื่องของคุณ ไม่มีการอัปโหลด

ตัวสร้าง HMAC

สร้างลายเซ็น HMAC (SHA-256, SHA-384, SHA-512, SHA-1 และ MD5) จากข้อความและกุญแจลับ เพื่อใช้ในการยืนยันตัวตนผ่าน API และ Webhook

เครื่องแปลง ETH เป็น USD

แปลงอีเธอเรียม (ETH) เป็นดอลลาร์สหรัฐด้วยอัตรา ETH/USD แบบเรียลไทม์หรืออัตราที่คุณกำหนดเอง ดูว่าจำนวน ETH เท่าใดก็ได้มีมูลค่าเป็น USD เท่าไร

เครื่องแปลง Gwei เป็น Ether

แปลงจำนวนในหน่วย Gwei เป็น Ether (ETH) ด้วยทศนิยมสูงสุด 18 ตำแหน่ง มีประโยชน์สำหรับการประมาณค่าธรรมเนียม Gas และการอ่านข้อมูลธุรกรรม

เครื่องคำนวณแฮชของไฟล์

คำนวณค่าแฮช MD5, SHA-1, SHA-256 และ SHA-512 ของข้อความหรือเนื้อหาไฟล์ที่คุณวาง เพื่อตรวจสอบไฟล์ที่ดาวน์โหลดและความสมบูรณ์ของไฟล์

เครื่องมือนี้มีให้บริการในภาษาอื่น