2. Symmetric - Key Cryptography

  1. Symmetric - Key Cryptography

Symmetric Key Cryptography คือ รูปแบบการเข้ารหัสแบบกุญแจสมมาตร หรือการเข้ารหัสข้อมูลด้วย “กุญแจเดี่ยว” โดยผู้ส่งและผู้รับจะใช้กุญแจตัวเดียวกันในการเข้าและถอดรหัสข้อมูล ซึ่งวิธีการนี้ผู้รับและผู้ส่งจะต้องตกลงกันก่อนว่าจะใช้อัลกอริทึมใดในการเข้ารหัสข้อมูล และสิ่งที่ผู้รับและผู้ส่งจะต้องมีเช่นเดียวกัน ก็คือ “กุญแจลับ ( Secret Key )” วิธีนี้จะตรงกันข้ามกับการเข้ารหัสแบบกุญแจอสมมาตร ( Public - Key Cryptography ) ที่ใช้กุญแจอันหนึ่งเพื่อเข้ารหัสและใช้กุญแจอีกอันหนึ่งเพื่อถอดรหัส

โดยหลักการทำงานของ Symmetric Key Cryptography จะประกอบไปด้วย การใช้ข้อความธรรมดา(Plaintext) เป็น Input ผ่านอัลกอริทึมการเข้ารหัส (Encryption Algorithm) ซึ่งเป็นกระบวนการแปลงข้อความธรรมดาให้เป็นข้อความเข้ารหัส (Ciphertext ) เป็น Output ออกมา และ กุญแจลับ ( Secret Key ) เป็นรหัสที่ป้อนเข้าไปในกระบวนการเข้ารหัส ซึ่งรหัสที่ป้อนเข้าไปจะทำให้ผลลัพธ์ที่ได้มีความแตกต่างกันไป แม้ว่าข้อความจะเหมือนกัน ส่วนประกอบสุดท้ายคือ กระบวนการในการถอดรหัส (Decryption Algorithm)

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

ลักษณะอัลกอริทึมในการเข้ารหัสแบบกุญแจสมมาตร (Symmetric Key Cryptography ) ที่ใช้กันทั่วไปจะมีอยู่ 2 แบบ คือ Block ciphers วิธีการนี้ คือการจัดกลุ่มข้อมูลเป็นบล็อกๆ โดยทุกบล็อกจะถูกเข้ารหัสโดยอัลกอริทึมและคีย์เดียวกัน (เช่น ข้อความธรรมดา 128 บิตจะถูกเข้ารหัสเป็นข้อความที่เข้ารหัส 128 บิต) ส่วน Stream Cipher จะต่างจาก Block ciphers ตรงที่ไม่ได้จัดกลุ่มข้อมูลเป็นบล็อก แต่จะนำข้อมูลมาเข้ารหัสทีละบิตเรียงต่อกันไปเรื่อยๆ (เช่น ข้อความธรรมดา 1 บิตถูกเข้ารหัสเป็นข้อความเข้ารหัส 1 บิตในแต่ละครั้ง)

ข้อดี คือ การเข้ารหัสทำได้ง่ายและรวดเร็ว
ข้อเสีย คือ ต้องการช่องทางในการสื่อสารข้อมูลที่ปลอดภัย (Secure Communication) เนื่องจากการเข้าและถอดรหัสประเภทนี้เป็นแบบ “กุญแจเดี่ยว” ทำให้ต้องมีการส่งกุญแจระหว่างผู้เขาและผู้ถอดรหัส ซึ่งอาจจะเกิดปัญหาได้หากมีบุคคลที่ 3 ที่ไม่หวังดีมาดักฟังกุญแจที่เราใช้ในการเข้ารหัสข้อมูล

อัลกอริทึมการเข้ารหัสแบบกุญแจสมมาตร (Symmetric Key Cryptography ) ถูกนำมาใช้ในระบบคอมพิวเตอร์สมัยใหม่จำนวนมาก เพื่อเพิ่มความปลอดภัยของข้อมูลและความเป็นส่วนตัวของผู้ใช้ เช่น มาตรฐานการเข้ารหัสขั้นสูง (AES) ที่ใช้กันอย่างแพร่หลายทั้งในแอปพลิเคชันการส่งข้อความที่ปลอดภัยและที่เก็บข้อมูลบนคลาวด์ (Cloud Storage)

Reference


Outline

  • Symmetric - Key Cryptography คืออะไร
  • กระบวนการทำงานของ Symmetric - Key Cryptography ยกตัวอย่าง
  • ตัวอย่างการใช้ Symmetric - Key Cryptography
  • ข้อดี-ข้อเสีย

เสนอให้เปลี่ยนเป็นแบบนี้ครับ
.
โดย Symmetric Key Cryptography เป็นการเข้ารหัสที่ใช้วิธีการแทนที่ตัวอักษร (Substitution) และวิธีย้ายตำแหน่งตัวอักษร (Transposition) ร่วมกัน ซึ่ง Substitution และ Transposition มีมานานตั้งแต่ในยุค Classical Cryptography อย่างเช่น Caesar Cipher ที่เป็นการเข้ารหัสแบบ Substitution หรือ Scytale ที่เป็นการเข้ารหัสแบบ Transposition เป็นต้น จนกระทั่งพัฒนามาเป็นอัลกอริธึมที่ใช้กันอย่างแพร่หลายในอินเทอร์เน็ต ในปัจจุบัน เช่น Advanced Encryption Standard (AES) และ Data Encryption Standard (DES)

1 Like

ประโยคนี้ลองเกาๆ ดูใหม่ทีครับ ประโยคยังดูแปลกๆ ครับ

ประโยคนี้ด้วยครับ ยังดูแปลกๆ ครับ

1 Like

Artwork concept

จะทำเป็น story มีทั้งหมด 6 aw

    1. Cover (ยังไม่แน่ใจรูปแบบ)
    1. Symmetric - Key Cryptography คืออะไร (What is it)
    1. การทำงานของ Symmetric - Key Cryptography (How it work)
    1. ข้อดี-ข้อเสีย (Pros & Cons)
    1. สรุป (paragraph สุดท้าย สรุปเกี่ยวกับบทความ)
    1. ending

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

ที่ปันลองอ่านคอนเทนต์ด้านล่างเขาระบุปัญหาหลัก ๆ มี 2 อย่าง คือ

  1. ปัญหาด้าน key management การจัดการกุญแจทำได้ยากเพราะการเข้าหรัสใยรูปแบบนี้ต้องใช้ 1 key ต่อ 1 คน และเมื่อมีการเข้ารหัสกับคนมากกกว่า 1 คน ทำให้ต้องเก็บกุญแจเพิ่มตามจำนวนคนนั้น ๆ

  2. เนื่องจากการเข้าและถอดรหัสประเภทนี้เป็นแบบ “คีย์เดี่ยว” ทำให้ต้องมีการส่งกุญแจดันระหว่างผู้เขาและผู้ถอด ซึ่งอาจทำให้เกิดการขโมยได้ง่าย

ปันเลยไม่แน่ใจว่า ถ้าเราจะยกข้อเสียมาสัก 1 อัน เราควรจะพูดถึงข้อไหนที่เป็น core หลักของ symmentric key จริง ๆ ค่ะ

เหมือนถ้าปัญหาที่เป็นหลักเห็นหลายๆ ที่หยิบขึ้นมา ส่วนใหญ่น่าจะเป็นปัญหาในการส่งคีย์แล้วจะโดนขโมย อันนี้พี่เจอแทบจะทุกเว็บเลย คิดว่าน่าจะเป็นหลักกว่ามั้ยนะ ถ้าจะเอาแค่เรื่องเดียว

งั้นส่วนตัวปันคิดว่าน่าจะพูดถึงประเด็นนี้ในข้อเสียค่ะดีหว่าค่ะ จะเข้าใจ และเห็นภาพง่ายกว่า

1 Like

รูปแบบในการเข้สรหัส น่าจะหมายถึง Algorithm ที่จะใช้ ? Key ไม่น่าถือเป็นรูปแบบ?

ไม่ถูกอ่า Caesar Cipher คือ Symmetric Key Encryption
symmetric ไม่ใช่เกิดขึ้นใน modern crypto
แค่ symmetric ใน modern crypto มีความ complex + ใช้คอมพิวเตอ
ยุค Classical Crypto มีแต่ symmetric

ไม่มีการอธิบายว่าทำไมถึงเล็ก ถ้ามีการอธิบายว่าเล็กควรจะมีอธิบายนะ ไม่งั้นอ่านแล้วก็จะงงๆ
แล้วมันเล็ก ถ้าเทียบกับอะไร? ที่มันเล็กเพราะมัน compare กับ pubkey crypto

Asymmetric keys have to be much larger than symmetric keys because 1) there are less asymmetric keys for a given number of bits (key space), and 2) there are patterns within the asymmetric keys themselves.

ต้องการช่องทางในการสื่อสารข้อมูลที่ปลอดภัย (Secure Communication)
Key มันโขมยไม่ได้ มันคือการดักฟัง ? การโขมยคือของของA อยู่ที่ B, A ไม่มีของแล้ว

ไม่ค่อยถูก
“ในแอปพลิเคชันที่ใช้ Blockchain” หมายถึงอะไร App ที่ใช้ blockchain ทำ ? หมายถึง Smart Contract?
“การเข้าใจในพื้นฐานของการเข้ารหัสแบบกุญแจสมมาตรจะช่วยให้เราสามารถเข้าใจการเข้ารหัสแบบกุญแจอสมมาตร ( Public - Key Cryptography ) ได้ดีมากยิ่งขึ้น” ช่วยยังไง ?

@Pantitas ในกราฟฟิก ไม่จำเป็นต้องมีพวกอีกชื่ออะไรงี้นะ มันจะทำให้ text บน กราฟฟิกยาว และไม่ได้ใจความ กินพื้นที่
และมันมีหลายชื่อมาก ส่วนตัวไม่ค่อยเรียก Symmetric Encryption จะเรียกเป็น Symmetric Key Encryption

ชื่อหลักที่เราจะใช้เรียก ควรจะสอดคล้องกับบทความอื่นๆ

  • public key cryptography, symmetric encryption
  • secret key cryptography( private key cryptography), asymmetric encryption

คียไม่ใช่ algorithm
1 Key สามารถใช้ได้กับหลายๆ algorithm

ความยาว key คือส่วนหนึ่ง ขึ้นอยู่ที่ algorithm ด้วย
key เท่ากัน คนละ algorithm ความยากไม่เท่ากัน

Security of symmetric ciphers
Symmetric ciphers have historically been susceptible to known-plaintext attacks, chosen-plaintext attacks, differential cryptanalysis and linear cryptanalysis. Careful construction of the functions for each round can greatly reduce the chances of a successful attack.[ citation needed ] It is also possible to increase the key length or the rounds in the encryption process to better protect against attack. This, however, tends to increase the processing power and decrease the speed at which the process runs due to the amount of operations the system needs to do.[11]