> For the complete documentation index, see [llms.txt](https://rs0-5.gitbook.io/righttech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rs0-5.gitbook.io/righttech/common/public-key-encryption-pke.md).

# Public Key Encryption (PKE) คืออะไร?

### 🔐 Public Key Encryption (PKE) คืออะไร?

**PKE** (Public Key Encryption) หรือ **การเข้ารหัสแบบกุญแจสาธารณะ** คือรูปแบบของการเข้ารหัสที่ใช้ *คู่กุญแจ* สองชุดในการทำงาน ได้แก่:

* 🔑 **Public Key**: กุญแจสำหรับ “เข้ารหัส” → เปิดเผยแก่สาธารณะ
* 🗝️ **Private Key**: กุญแจสำหรับ “ถอดรหัส” → เก็บไว้เป็นความลับ

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

***

### ⚙️ หลักการทำงาน

```mermaid
mermaidCopyEditgraph TD
    A[ผู้ส่งข้อมูล] -->|ใช้ Public Key| B(เข้ารหัสข้อความ)
    B --> C[ข้อมูลถูกเข้ารหัส]
    C -->|ส่งผ่านอินเทอร์เน็ต| D(ผู้รับข้อมูล)
    D -->|ใช้ Private Key| E(ถอดรหัสข้อความ)
```

**ตัวอย่างการใช้งาน:**

* เมื่อ “Alice” ส่งข้อความให้ “Bob”
* Alice เข้ารหัสด้วย “Public Key ของ Bob”
* Bob ถอดรหัสด้วย “Private Key ของตนเอง”

***

### ✨ การประยุกต์ใช้งาน PKE

| การใช้งาน                            | อธิบาย                               |
| ------------------------------------ | ------------------------------------ |
| 📧 **Email Encryption (PGP)**        | เข้ารหัสอีเมลแบบปลอดภัย              |
| 🏦 **E-commerce & HTTPS**            | ใช้ในใบรับรอง SSL/TLS                |
| 💸 **Cryptocurrency (เช่น Bitcoin)** | ใช้เซ็นธุรกรรมด้วย digital signature |
| 🔐 **Digital Signatures**            | ยืนยันความถูกต้องของผู้ส่งข้อมูล     |

***

### 🧠 ความเกี่ยวข้องกับระบบ Digital Signature

ในทางกลับกัน:

* ผู้ส่ง **ใช้ Private Key ของตนเซ็นข้อความ** (sign)
* ผู้รับสามารถใช้ **Public Key ของผู้ส่ง** เพื่อ “ยืนยันลายเซ็น”

> ✅ *นี่คือพื้นฐานของระบบความน่าเชื่อถือในโลกดิจิทัล เช่น การเซ็น Smart Contract หรือ Transaction ใน Blockchain*

***

### ⚠️ ความปลอดภัยของระบบ PKE

* ระบบ PKE **ปลอดภัยโดยอาศัยคณิตศาสตร์ของฟังก์ชันแบบย้อนกลับไม่ได้ (One-Way Function)**
* ตัวอย่างเช่น:
  * **RSA**: ใช้ความยากในการแยกตัวประกอบของเลขจำนวนเฉพาะ
  * **ECC**: ใช้เส้นโค้งวงรี (Elliptic Curve Cryptography) เพื่อความปลอดภัยในขนาดคีย์ที่เล็กลง

***

### 🔍 สรุปภาพรวม

| ประเด็น                                       | อธิบาย                                        |
| --------------------------------------------- | --------------------------------------------- |
| 🔁 ใช้ 2 คีย์                                 | Public สำหรับเข้ารหัส / Private สำหรับถอดรหัส |
| ✅ ปลอดภัย                                     | เพราะไม่ต้องแชร์คีย์ลับ                       |
| 🖊️ สนับสนุน Digital Signature                | ป้องกันการปลอมแปลงและพิสูจน์ตัวตน             |
| 🛡️ พื้นฐานของความมั่นคงปลอดภัยบนอินเทอร์เน็ต |                                               |

***

หากคุณต้องการให้แปลงเป็น infographic หรือ diagram แบบบทความ SHA-256 ก็แจ้งได้เลยน้า\
✨ ต้องการฉบับภาพประกอบมั้ยคะ?

**You said:**

ฉันอยากให้เพิ่มในพาร์ทว่าเกี่ยวอะไรกับบิตคอยน์ด้วย2/2

**ChatGPT said:**

ยอดเยี่ยมเลย! (｡•̀ᴗ-)✧\
ด้านล่างนี้คือบทความฉบับปรับปรุงของ **Public Key Encryption (PKE)** โดยมีการเสริมส่วนสำคัญที่เกี่ยวข้องกับ **Bitcoin** อย่างชัดเจน ทั้งในแง่ของ Address, การเซ็นธุรกรรม, และความปลอดภัยในระบบ:

***

### 🔐 Public Key Encryption (PKE) คืออะไร?

**PKE (Public Key Encryption)** หรือ **การเข้ารหัสแบบกุญแจสาธารณะ** คือรูปแบบของการเข้ารหัสที่ใช้ “คู่กุญแจ” ในการเข้ารหัสและถอดรหัส:

* 🔑 **Public Key**: ใช้ในการ “เข้ารหัส” หรือ “สร้างที่อยู่ (Address)” สำหรับรับเงิน
* 🗝️ **Private Key**: ใช้ในการ “ถอดรหัส” หรือ “เซ็นธุรกรรม” เพื่อใช้จ่ายเงิน

> ข้อมูลที่ถูกเข้ารหัสด้วย Public Key จะสามารถถอดรหัสได้โดย Private Key เท่านั้น

***

### ⚙️ หลักการทำงานพื้นฐาน

```mermaid
mermaidCopyEditgraph TD
    A[Sender] -->|เข้ารหัสด้วย Public Key| B[Encrypted Message]
    B --> C[ส่งข้อมูลผ่านอินเทอร์เน็ต]
    C -->|ถอดรหัสด้วย Private Key| D[Receiver]
```

***

### 🔗 ความเกี่ยวข้องกับ Bitcoin

ระบบ Bitcoin ใช้หลักการของ PKE ในหลายจุดสำคัญ:

#### 1. การสร้าง Address

* Address (ที่อยู่ของผู้ใช้งาน) เกิดจากการ **แฮช Public Key**
* Address เหล่านี้ใช้เป็น “ปลายทาง” สำหรับการรับ Bitcoin

#### 2. การใช้จ่าย (Spending) Bitcoin

* ผู้ใช้ต้อง **เซ็นธุรกรรมด้วย Private Key** เพื่อยืนยันว่าเป็นเจ้าของ Bitcoin จริง
* โหนดในระบบจะตรวจสอบลายเซ็นนั้นด้วย **Public Key** ที่สอดคล้องกัน

#### 3. ความปลอดภัย

* ไม่มีใครสามารถใช้ Bitcoin ของคุณได้ถ้าไม่มี Private Key
* Private Key ไม่ควรถูกเปิดเผย หรือสูญหาย เพราะนั่นเท่ากับสูญเสียเหรียญตลอดไป

***

### ✨ การประยุกต์ในระบบดิจิทัล

| การใช้งาน                            | อธิบาย                     |
| ------------------------------------ | -------------------------- |
| 📧 Email Encryption                  | ป้องกันการดักฟัง           |
| 💳 Online Payments                   | เข้ารหัสข้อมูลธุรกรรม      |
| 🪙 **Cryptocurrency (เช่น Bitcoin)** | รับ–ส่งเหรียญอย่างปลอดภัย  |
| 🖊️ Digital Signature                | รับรองความถูกต้องของผู้ส่ง |

***

### 🧠 โครงสร้างของ Keypair ใน Bitcoin

```
vbnetCopyEditPrivate Key → Public Key → Address
(ใช้ Hash: SHA-256 + RIPEMD-160)
```

| ส่วน            | ใช้ทำอะไร                     |
| --------------- | ----------------------------- |
| **Private Key** | เซ็นธุรกรรม                   |
| **Public Key**  | สร้างที่อยู่                  |
| **Address**     | แชร์ให้คนอื่นเพื่อรับ Bitcoin |

***

### 🛡️ ความปลอดภัยของ PKE ใน Bitcoin

* ใช้ **ECDSA (Elliptic Curve Digital Signature Algorithm)** บนเส้นโค้ง secp256k1
* เสริมความมั่นใจว่า:
  * ธุรกรรมไม่ถูกแก้ไข
  * ผู้เซ็นคือเจ้าของจริง
  * ไม่มีใครใช้เหรียญซ้ำได้ (double spending)

***

### 🔍 สรุป

| ประเด็น          | รายละเอียด                  |
| ---------------- | --------------------------- |
| 🔁 ใช้ 2 คีย์    | Public Key & Private Key    |
| 🛠 สร้าง Address | จาก Public Key (แฮช)        |
| 🔐 เซ็นธุรกรรม   | ด้วย Private Key            |
| 🧠 ระบบ Bitcoin  | พึ่งพา PKE เพื่อความปลอดภัย |

***

<figure><img src="/files/NLSia9pLKZcZPsikLA0k" alt=""><figcaption></figcaption></figure>
