> 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>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rs0-5.gitbook.io/righttech/common/public-key-encryption-pke.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
