arrow_backกลับไปที่บันทึกภาคสนาม
CRYPTOGRAPHY เผยแพร่แล้ว 9 Aug 2026

Public-Key Cryptography ทำงานอย่างไรจริงๆ

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

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

แนวคิดพื้นฐาน

ในการเข้ารหัสแบบสมมาตร กุญแจเดียวล็อคและปลดล็อคข้อมูล ซึ่งใช้ได้ดีหากคู่ฝ่ายทั้งสองแบ่งปันความลับแล้ว แต่การแจกจ่ายความลับนั้นอย่างปลอดภัยคือส่วนที่ยาก Public-key (asymmetric) cryptography แก้ปัญหานี้โดยสร้างคู่ที่มีความสัมพันธ์ทางคณิตศาสตร์: กุญแจสาธารณะที่คุณให้ใครก็ได้ และกุญแจส่วนตัวที่คุณไม่เปิดเผยเลย

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

RSA ตัวอย่างแบบคลาสสิก

RSA อาศัยข้อเท็จจริงที่ว่าการคูณจำนวนเฉพาะสองตัวที่มีขนาดใหญ่นั้นรวดเร็ว แต่การแยกตัวประกอบของผลลัพธ์กลับเป็นจำนวนเฉพาะเหล่านั้นนั้นมีความหนักแน่นทางการคำนวณในระดับใหญ่ กุญแจ RSA 2048 บิตสร้างมาจากจำนวนเฉพาะสองตัวขนาดประมาณ 1024 บิตแต่ละตัว กุญแจสาธารณะคือ (n, e) — n เป็นผลคูณของจำนวนเฉพาะ e เป็นเลขชี้กำลังคงที่เช่น 65537 กุญแจส่วนตัวได้มาโดยใช้โทเชียนต์ของ n และเกี่ยวข้องกับการรู้จำนวนเฉพาะดั้งเดิม

การเข้ารหัสคือการยกกำลังโมดูลาร์: c = m^e mod n การถอดรหัสกลับรายการด้วยเลขชี้กำลังส่วนตัว d: m = c^d mod n ในทางปฏิบัติ ไม่มีใครเข้ารหัสเพย์โหลดขนาดใหญ่โดยตรงด้วย RSA — มันช้าและมีขีดจำกัดขนาดที่เชื่อมโยงกับความยาวกุญแจ แต่เดี๋ยว RSA มักจะห่อหุ้มกุญแจเซสชั่นสมมาตร (เช่น AES-256) และตัวเข้ารหัสสมมาตรจัดการข้อมูลจำนวนมาก นี่คือแนวทางไฮบริดที่ TLS ใช้

Elliptic curve cryptography และเหตุใดจึงกำลังครอบงำ

ECC ให้คุณความปลอดภัยเทียบเท่า RSA ด้วยกุญแจที่เล็กกว่ามาก กุญแจ ECC 256 บิต (เช่น curve secp256r1 หรือ Curve25519) มีความแข็งแกร่งโดยประมาณเทียบเท่ากับกุญแจ RSA 3072 บิต กุญแจที่เล็กกว่าหมายถึง handshake ที่เร็วกว่าและแบนด์วิดท์ที่น้อยลง ซึ่งเป็นเหตุผลว่าทำไม TLS configs สมัยใหม่ การ SSH implementation และโปรโตคอล Signal จึงพึ่งพา ECC

คณิตศาสตร์จะแตกต่างกัน — มันอาศัยปัญหาลอการิทึมแบบไม่ต่อเนื่องเหนือจุดบนเส้นโค้งวงรี แทนที่จะเป็นการแยกตัวประกอบจำนวนเต็ม — แต่ความสัมพันธ์ระหว่างกุญแจสาธารณะและส่วนตัว และการรับประกันนั้นเป็นแนวคิดเดียวกัน

ลายเซ็นดิจิทัล: ครึ่งหนึ่งอื่นของสมการ

การเข้ารหัสรักษาข้อมูลให้เป็นความลับ ลายเซ็นพิสูจน์ความถูกต้องและความสมบูรณ์ ในการลงนามข้อความ คุณแฮชมัน (SHA-256 โดยทั่วไป) และเข้ารหัสแฮชนั้นด้วยกุญแจส่วนตัวของคุณ ใครก็ตามที่มีกุญแจสาธารณะของคุณสามารถแฮชข้อความด้วยตัวเอง ถอดรหัสลายเซ็นของคุณ และตรวจสอบว่าแฮชทั้งสองตรงกัน

นี่คือสิ่งที่เกิดขึ้นโดยตรงเมื่อคุณเรียกใช้ git commit -S ด้วยกุญแจ GPG หรือเมื่อ Certificate Authority ลงนาม TLS certificate กุญแจส่วนตัวของ CA ลงนามใบรับรองของคุณ เบราว์เซอร์มีกุญแจสาธารณะของ CA ที่น่าเชื่อถือแล้ว ดังนั้นพวกเขาสามารถตรวจสอบความถูกต้องของใบรับรองของคุณโดยไม่ต้องพูดคุยกับ CA โดยตรง

ตรงไหนที่เกิดขึ้นทุกวัน

SSH key auth เป็นการประยุกต์ใช้โดยตรง: ssh-keygen -t ed25519 สร้างคู่กุญแจ คุณวางครึ่งสาธารณะลงใน ~/.ssh/authorized_keys บนเซิร์ฟเวอร์ และการตรวจสอบความถูกต้องเกิดขึ้นผ่านความท้าทายและการตอบสนองโดยใช้กุญแจส่วนตัว ไม่มีรหัสผ่านเดินทางไปยังไหน

TLS handshakes ใช้ asymmetric crypto ได้นั้น เพียงเพื่อสร้างกุญแจสมมาตรที่ใช้ร่วมกัน (ผ่าน ECDHE key exchange ในการตั้งค่าสมัยใหม่) จากนั้นหล่นลงไปในการเข้ารหัสสมมาตรที่รวดเร็วสำหรับเซสชั่นจริง PGP/GPG การเข้ารหัสอีเมลตามรูปแบบไฮบริดด้วย — เข้ารหัสข้อความด้วยกุญแจ AES สุ่ม จากนั้นเข้ารหัสกุญแจ AES นั้นด้วยกุญแจสาธารณะ RSA หรือ ECC ของผู้รับ

สิ่งที่แบ่งออกจริงในทางปฏิบัติ

คณิตศาสตร์เบื้องหลัง RSA และ ECC ไม่ได้ถูกทำลายผ่านการคำนวณแบบคลาสสิก สิ่งที่ผิดพลาดเกือบทั้งหมดคือการนำไปใช้งาน: การสร้างจำนวนสุ่มที่อ่อนแออยู่เมื่อสร้างกุญแจ (จุดบกพร่อง Debian OpenSSL จากปี 2008 คือกรณีตำรา) การใช้ nonce ซ้ำในลายเซ็น ECDSA ที่รั่วไหลกุญแจส่วนตัว หรือการโจมตี padding oracle ต่อการนำ RSA ไปใช้งานที่ไม่ดี (การโจมตี Bleichenbacher ต่อการเติม PKCS#1 v1.5) การคำนวณควอนตัมเป็นภัยคุกคามทางทฤษฎีระยะยาว — อัลกอริทึมของ Shor จะทำให้ทั้ง RSA และ ECC แตกหักหากมีคอมพิวเตอร์ควอนตัมขนาดใหญ่พอ — ซึ่งเป็นเหตุผลว่าทำไม NIST จึงได้มาตรฐานอัลกอริทึมหลังควอนตัมแล้ว เช่น ML-KEM (เดิมชื่อ Kyber) สำหรับการย้ายในอนาคต

หากคุณต้องการไปให้ไกลกว่านี้ track cryptography ของ Korra Studio ครอบคลุม key exchange protocols และ hash function internals ในรายละเอียดมากขึ้น และส่วนเครือข่ายอธิบายว่าสิ่งทั้งหมดนี้เข้ากับ TLS handshake จริงแล้วเป็นอย่างไร ทีละไบต์

เขียนด้วยความช่วยเหลือของ AI ตรวจสอบและเผยแพร่โดย Michal Pilch (CISSP), Korra Studio

พร้อมที่จะไปต่อหรือไม่

นี่คือบันทึกหนึ่งจากฐานความรู้ของ Korra Studio — แพลตฟอร์มจับคู่หัวข้อแต่ละหัวข้อกับการฝึกสอนแบบ 1-to-1

เริ่มใช้งานฟรีarrow_forward