
Zama: Part 3.1, Concrete ML - No Code Introduction
สวัสดีครับเพื่อนๆ หลังจากที่ผู้เขียนได้อัปเดตเกี่ยวโปรเจค Zama ในมุมมองด้าน Blockchain ไปแล้ว ผ่านบทความ Part 2.1 และ 2.2 สำหรับบทความนี้ ในฐานะที่ผู้เขียนกำลังทำงานด้าน Data Scientist อยู่ ผู้เขียนมีความสนใจ product ของตัวนึง Zama มากๆ ที่ช่วยให้เหล่า Data Scientist สามารถสร้างโมเดล AI ที่สามารถประมวลผลบนข้อมูลที่ถูกเข้ารหัสได้ ทำให้การทำงานมีความปลอดภัยสูงแม้ข้อมูลจะหลุดรั่วออกไป โดย product ตัวนี้ชื่อว่า Concrete ML ครับIntroductionจุดแข็งของ Fully Homomorphic Encryption (FHE) คือการที่สาม...

Zama: Data Analytics, Part 1 - Winners of Zama Content Creators #1
Hello, everyone. First of all, congratulations to all the winners of Zama Content Creators program in Season 1, which are 6.2% of the total (myself included, hehe)!Zama Creator ProgramZama launches Creator Program with monthly rewards for genuine and impactful creators. Multi-year commitment focuses on sustainable value creation over traditional one-time opaque token distributions.https://www.zama.aiRecently, Zama has officially announced the first batch of winners, consisting of 250 people. ...
![Cover image for Zama: Part 1, Introduction [Thai]](https://img.paragraph.com/cdn-cgi/image/format=auto,width=3840,quality=85/https://storage.googleapis.com/papyrus_images/f5289c32332e2588712f823bfc2816c8ecc2f8f3ebabcd590fa9aafb8ebf5c15.png)
Zama: Part 1, Introduction [Thai]
“A merchant and buyers want to communicate without revealing the prices of 🍎 and 🍊, using + and ×, to competitors. FHE lets them use math to create another language, allowing them to talk privately while performing computations (+, ×) similarly in that language too.” - lordachita.ethสวัสดีครับเพื่อนๆ เมื่อไม่กี่วันที่ผ่านมา ผู้เขียนมีโอกาสได้เข้าร่วมกิจกรรมของโปรเจคๆนึง ที่ถือว่าเป็นหนึ่งใน leader ของผู้พัฒนาเทคโนโลยี (Fully) Holomorphic Encryption (FHE) จากฝั่ง Cryptography ชื่อ Zama โดยผู...
PP/De AI KOL

Share Dialog


Zama: Part 3.1, Concrete ML - No Code Introduction
สวัสดีครับเพื่อนๆ หลังจากที่ผู้เขียนได้อัปเดตเกี่ยวโปรเจค Zama ในมุมมองด้าน Blockchain ไปแล้ว ผ่านบทความ Part 2.1 และ 2.2 สำหรับบทความนี้ ในฐานะที่ผู้เขียนกำลังทำงานด้าน Data Scientist อยู่ ผู้เขียนมีความสนใจ product ของตัวนึง Zama มากๆ ที่ช่วยให้เหล่า Data Scientist สามารถสร้างโมเดล AI ที่สามารถประมวลผลบนข้อมูลที่ถูกเข้ารหัสได้ ทำให้การทำงานมีความปลอดภัยสูงแม้ข้อมูลจะหลุดรั่วออกไป โดย product ตัวนี้ชื่อว่า Concrete ML ครับIntroductionจุดแข็งของ Fully Homomorphic Encryption (FHE) คือการที่สาม...

Zama: Data Analytics, Part 1 - Winners of Zama Content Creators #1
Hello, everyone. First of all, congratulations to all the winners of Zama Content Creators program in Season 1, which are 6.2% of the total (myself included, hehe)!Zama Creator ProgramZama launches Creator Program with monthly rewards for genuine and impactful creators. Multi-year commitment focuses on sustainable value creation over traditional one-time opaque token distributions.https://www.zama.aiRecently, Zama has officially announced the first batch of winners, consisting of 250 people. ...
![Cover image for Zama: Part 1, Introduction [Thai]](https://img.paragraph.com/cdn-cgi/image/format=auto,width=3840,quality=85/https://storage.googleapis.com/papyrus_images/f5289c32332e2588712f823bfc2816c8ecc2f8f3ebabcd590fa9aafb8ebf5c15.png)
Zama: Part 1, Introduction [Thai]
“A merchant and buyers want to communicate without revealing the prices of 🍎 and 🍊, using + and ×, to competitors. FHE lets them use math to create another language, allowing them to talk privately while performing computations (+, ×) similarly in that language too.” - lordachita.ethสวัสดีครับเพื่อนๆ เมื่อไม่กี่วันที่ผ่านมา ผู้เขียนมีโอกาสได้เข้าร่วมกิจกรรมของโปรเจคๆนึง ที่ถือว่าเป็นหนึ่งใน leader ของผู้พัฒนาเทคโนโลยี (Fully) Holomorphic Encryption (FHE) จากฝั่ง Cryptography ชื่อ Zama โดยผู...
Share Dialog
PP/De AI KOL

Subscribe to lordachita

Subscribe to lordachita
สวัสดีครับผู้อ่านทุกๆท่าน
หลังจากที่ท่านได้อ่านบทความ Series Part 2.X และ 3.X ผู้อ่านน่าจะพอเห็นประโยชน์ที่ได้รับจาก การใช้งาน products ต่างๆของ Zama แล้ว ไม่มั่นใจว่าผู้อ่านรู้สึกเหมือนผมไหมครับว่าเทคโนโลยี FHE ให้ความรู้สึกเสมือนมายากลสุดพิเศษที่เสกให้พวกเราสามารถคำนวนบนข้อมูลที่ถูกเข้ารหัสไว้ได้ โดยที่ไม่ต้องทำความเข้าใจเบื้องหลัง ที่ถูกสร้างมาอย่างดีด้วยภาษาคณิตศาสตร์ ที่มีเพียงกลุ่มผู้ถูกเลือกเท่านั้นที่จะสามารถถอดความและทำความเข้าใจถึงความสวยงามขอมายากลนี้ได้
โดยในบทความนี้ ผมขออนุญาตเป็นตัวแทนที่เคยเจาะลึกภาษานี้มากว่า 4 ปี พาเพื่อนๆมาทำเข้าใจเบื้องหลังถึงแก่นของมายากลอันสุดวิเศษที่ชื่อ TFHE ที่เป็นเบื้องหลังความสำเร็จของ Zama ผ่านมุมมองที่ผู้เขียนได้ลองศึกษามาข้ามปีครับ
ทาง Zama ได้แนะนำ Document เกี่ยวกับ TFHE ไว้หลากหลายรูปแบบ
ไม่ว่าจะเป็นรูปแบบของ Blog ทั้งหมด 4 Parts, article และ handbook ซึ่งเขียนไว้ได้ดีทุกรูปแบบ ปัญหาคือไม่ว่าจะเป็นแบบไหน ปัจจุบันผู้เขียนก็ยังไม่เจอรูปแบบที่ friendly กับคนที่อาจจะยังไม่ได้ชำนาญคณิตศาสตร์ (ด้วยลักษณะของความซับซ้อนของคณิตศาสตร์ในการทำ Cryptography)
ในบทความนี้ ผู้เขียนจะขมวดบทความ เห็นสั้นและกระชับเพื่อให้ผู้ที่สนใจพอเห็นภาพว่า คณิตศาสตร์เบื้องหลังทำงานอย่างไร โดยวางแผนเขียนบรรยายเพียง 2 หัวข้อหลัก ได้แก่
Building Blocks
สวัสดีครับผู้อ่านทุกๆท่าน
หลังจากที่ท่านได้อ่านบทความ Series Part 2.X และ 3.X ผู้อ่านน่าจะพอเห็นประโยชน์ที่ได้รับจาก การใช้งาน products ต่างๆของ Zama แล้ว ไม่มั่นใจว่าผู้อ่านรู้สึกเหมือนผมไหมครับว่าเทคโนโลยี FHE ให้ความรู้สึกเสมือนมายากลสุดพิเศษที่เสกให้พวกเราสามารถคำนวนบนข้อมูลที่ถูกเข้ารหัสไว้ได้ โดยที่ไม่ต้องทำความเข้าใจเบื้องหลัง ที่ถูกสร้างมาอย่างดีด้วยภาษาคณิตศาสตร์ ที่มีเพียงกลุ่มผู้ถูกเลือกเท่านั้นที่จะสามารถถอดความและทำความเข้าใจถึงความสวยงามขอมายากลนี้ได้
โดยในบทความนี้ ผมขออนุญาตเป็นตัวแทนที่เคยเจาะลึกภาษานี้มากว่า 4 ปี พาเพื่อนๆมาทำเข้าใจเบื้องหลังถึงแก่นของมายากลอันสุดวิเศษที่ชื่อ TFHE ที่เป็นเบื้องหลังความสำเร็จของ Zama ผ่านมุมมองที่ผู้เขียนได้ลองศึกษามาข้ามปีครับ
ทาง Zama ได้แนะนำ Document เกี่ยวกับ TFHE ไว้หลากหลายรูปแบบ
ไม่ว่าจะเป็นรูปแบบของ Blog ทั้งหมด 4 Parts, article และ handbook ซึ่งเขียนไว้ได้ดีทุกรูปแบบ ปัญหาคือไม่ว่าจะเป็นแบบไหน ปัจจุบันผู้เขียนก็ยังไม่เจอรูปแบบที่ friendly กับคนที่อาจจะยังไม่ได้ชำนาญคณิตศาสตร์ (ด้วยลักษณะของความซับซ้อนของคณิตศาสตร์ในการทำ Cryptography)
ในบทความนี้ ผู้เขียนจะขมวดบทความ เห็นสั้นและกระชับเพื่อให้ผู้ที่สนใจพอเห็นภาพว่า คณิตศาสตร์เบื้องหลังทำงานอย่างไร โดยวางแผนเขียนบรรยายเพียง 2 หัวข้อหลัก ได้แก่
Building Blocks
Computations - จะเป็นการอธิบายวิธีการทำบวกและคูณ ซึ่งรวมถึงวิธีการจัดการ noise ที่เกิดขึ้นจากการคำนวนบนข้อมูลที่ถูกเข้ารหัสแล้ว
ผู้อ่านควรทราบ arithmetic สำหรับการ programming ในเบื้องต้น (โดยเฉพาะการทำ modulo)
1.1 Torus and its Discretization
Torus หรือสิ่งที่นักคณิตศาสตร์เรียกมันว่าโดนัท เป็นโครงสร้างสุดอัศจรรย์ ที่มีอิทธิพลและมีประโยชน์มากๆสำหรับการศึกษาคณิตศาสตร์ โดยเฉพาะฝั่งของ Lie Group ที่มีคุณสมบัติทั้งในเชิงของเลขคณิต (arithmetic) และเชิงเรขาคณิต (geometric) รวมไว้ด้วยกัน

โดยเหตุผลหลักๆที่ทำให้ Torus ถูกเรียกว่าโดนัท เพราะว่ามีเคสเฉพาะของมันที่เราสามารถมองเป็นรูปโดนัทได้จริงๅ

โดยในฝั่ง cryptography เราจะโฟกัสบน Torus ที่เป็นวงกลม และมองคุณสมบัติเชิง arithmetic ที่ได้เป็นหลัก ซึ่งจะได้ว่า Torus ตัวนี้เป็นเซ็ต/กลุ่มของส่วนที่เป็นทศนิยมของจำนวนจริง
ให้ลองนึกภาพ
จากนั้นเมื่อเราสนใจส่วนที่เป็นทศนิยมของ sqrt 2 นั่นคือการ modulo 1 บนจำนวนจริง และจะได้ว่า
โดย Torus สามารถทำการบวกและคูณ scalar (ที่เป็นจำนวนเต็ม) ได้แต่จะยังไม่สามารถนิยามการคูณระหว่างสมาชิกบน Torus ตรงๆได้ ให้ลองพิจารณา 1/2 = 3/2 บน Torus แต่
ซึ่ง Torus จะมีสมมติฐาน Decisional Learning With Errors ที่ว่า “ภายใต้ตัวเลือกที่ดีมากพอ เราจะไม่สามารถจำแนกความแตกต่างระหว่างตัวอย่างที่สุ่มมา (จาก Torus) กับตัวอย่างสุ่มที่ถูก encrypted/noise added มาแล้ว” ทำให้การทำ FHE บน Torus จะมีความปลอดภัยที่ถูกการันตีมาแล้ว
ซึ่งการคำนวนบนคอมพิวเตอร์ จะต้องมีการแปลงค่าที่ continuous ให้อยู่ในรูปของ discrete และสามารถกำหนดความแม่นยำ ซึ่งสามารถทำได้ผ่านการทำ Discretization ตัว Torus ยกตัวอย่างตัว sqrt 2 บน Torus ซึ่งสามารถเขียนในรูปของฐาน 10
โดยหากต้องการทศนิยมเพียงทศนิยม 3 หลัก
เราจะสามารถประมาณค่า ผ่าน Discretized Torus ที่ฐาน 10, ทศนิยม 3 หลักได้
ซึ่งในการทำงานจริง เราจะทำงานบนฐาน 2 ที่มี bit precision 32, 64 หลัก
ดังนั้น Discretized Torus (modulo q) จะมีหน้าตา
ซึ่งเป็น subset ของ Torus แต่ตอนที่ implementation elements บน Discretized Torus จะพิจารณาเซ็ตที่เป็น modulo ของจำนวนเต็ม (หากไม่เห็นภาพให้นึกถึงชั่วโมงในนาฬิกาที่มี 12 เลข พอเป็น 13:00 (บ่ายโมง) ก็จะกลับมาเป็นเลข 1 อีกครั้ง แต่บนเซ็ต modulo 12 จริงๆแล้วจะเริ่มที่ 0 แล้วจบที่ 11 ) ซึ่งคือ
เวลาทำงานจริง เพราะ preserve การบวกและการคูณ scalar คล้ายกับคุณสมบัติ (Discretized) Torus ที่มีอยู่แล้ว ซึ่งเป็นการคำนวนที่เกิดขึ้นบนตัวเศษของเศษส่วนบนนั้น (numerator)
1.2 Encryption and Decryption - Secured by Torus
เมื่อเราทำความเข้าใจ Torus และการทำ Discretization แล้ว ขั้นตอนถัดมาจะเข้าสู่ขั้นตอนของการทำ encryption/decryption ผ่านการใช้งาน Torus
โดย space เริ่มต้นของข้อมูล plaintext นั้นจะอยู่บน T_p (Discretized Torus, modulo p) เพื่อที่จะเตรียม encrypt ผ่านฟังก์ชั้น TLWE ไปเป็น ciphertext ที่เป็น n-dimensional tuples บน Discretized Torus, modulo q หรือบน
โดยที่
มี public parameter = {n, \sigma, p, q }
\sigma = standard deviation ของ normal distribution ที่ e (noise/error) ถูกหยิบขึ้นมาโดยที่ e < 1/|2p| (สำหรับการทำ decryption)
ค่า p หาร q ลงตัว (นั่นคือ set ของ plaintext เป็นซับเซ็ตของ ciphertext หรือตัวส่วน ciphertext มีความละเอียดที่มากกว่า)
และมี secret key/private key = s = (s_1,…,s_n) โดยที่ s_i = 0, 1
เราจะสร้างวิธี
1. Encryption
ของ plaintext \mu บน T_p (ซึ่งเป็นค่าบน T_q ด้วย จากการที่ p หาร q ลงตัว) ผ่านการนำ a_1,…,a_n ที่สุ่มมาจาก T_q มาใช้งานกับค่า b ที่ผ่านการ encrypt แล้ว ผ่านสมการ
โดยความหมายคือการ encrypt บนตัวแปร b คือการที่ private key s ทำหน้าที่สุ่มปิดค่า a_i ที่จะใช้ (เพราะค่า s_i ที่เป็น 0 จะทำให้ผลคูณ s_i, a_i หายไป) เพื่อนำไปรวมกับ plaintext (\mu) เดิมที่มี noise เข้ามา (e) ด้วย
2. Decryption
สังเกตุจากสมการด้านบนได้ว่า
สมมติให้
ได้เพราะ \mu อยู่ใน T_p เมื่อให้สัญลักษณ์ ⌊ x ⌉ แทนการหาจำนวนเต็มที่ใกล้เคียงค่า x ที่สุด จึงได้
เพราะ
ดังนั้นเราจะได้วิธีการ decrypt ผ่านสมการ
1.3 Examples

จากตัวอย่างดังกล่าว เราจะมี plaintext ในรูปแบบ
เป็นวงด้านใน และ ciphertext ในรูปแบบ
ซึ่งเป็นวงด้านนอก/ละเอียดกว่า ทำให้ plaintext จะสามารถเขียนได้ในรูปแบบ
โดยที่ noise จะมีค่าได้ตั้งแต่
จะทำให้เมื่อนำ plaintext ไปบวกกับค่า noise แล้วจะไม่ตกช่องสีดำที่ไม่สามารถ decrypt ค่าได้
สมมติค่า private key = 0, plaintext = 1/4, error = 3/64 ทำให้เมื่อทำการ encrypt ตัว plaintext จะได้ค่า b จะเป็น plaintext + error = 19/64 และเมื่อจะดำเนินการ decrypt ค่ากลับ ทำให้สามารถดำเนินการที่ค่า b ได้เลย และจะได้ ⌊4 * (19/64)⌉ mod 4 / 4 = ⌊19/16⌉ mod 4 / 4 = 1/4 ค่าเดิมกลับมา
ท่านผู้อ่านสามารถติดตามได้ในเร็วๆนี้
Computations - จะเป็นการอธิบายวิธีการทำบวกและคูณ ซึ่งรวมถึงวิธีการจัดการ noise ที่เกิดขึ้นจากการคำนวนบนข้อมูลที่ถูกเข้ารหัสแล้ว
ผู้อ่านควรทราบ arithmetic สำหรับการ programming ในเบื้องต้น (โดยเฉพาะการทำ modulo)
1.1 Torus and its Discretization
Torus หรือสิ่งที่นักคณิตศาสตร์เรียกมันว่าโดนัท เป็นโครงสร้างสุดอัศจรรย์ ที่มีอิทธิพลและมีประโยชน์มากๆสำหรับการศึกษาคณิตศาสตร์ โดยเฉพาะฝั่งของ Lie Group ที่มีคุณสมบัติทั้งในเชิงของเลขคณิต (arithmetic) และเชิงเรขาคณิต (geometric) รวมไว้ด้วยกัน

โดยเหตุผลหลักๆที่ทำให้ Torus ถูกเรียกว่าโดนัท เพราะว่ามีเคสเฉพาะของมันที่เราสามารถมองเป็นรูปโดนัทได้จริงๅ

โดยในฝั่ง cryptography เราจะโฟกัสบน Torus ที่เป็นวงกลม และมองคุณสมบัติเชิง arithmetic ที่ได้เป็นหลัก ซึ่งจะได้ว่า Torus ตัวนี้เป็นเซ็ต/กลุ่มของส่วนที่เป็นทศนิยมของจำนวนจริง
ให้ลองนึกภาพ
จากนั้นเมื่อเราสนใจส่วนที่เป็นทศนิยมของ sqrt 2 นั่นคือการ modulo 1 บนจำนวนจริง และจะได้ว่า
โดย Torus สามารถทำการบวกและคูณ scalar (ที่เป็นจำนวนเต็ม) ได้แต่จะยังไม่สามารถนิยามการคูณระหว่างสมาชิกบน Torus ตรงๆได้ ให้ลองพิจารณา 1/2 = 3/2 บน Torus แต่
ซึ่ง Torus จะมีสมมติฐาน Decisional Learning With Errors ที่ว่า “ภายใต้ตัวเลือกที่ดีมากพอ เราจะไม่สามารถจำแนกความแตกต่างระหว่างตัวอย่างที่สุ่มมา (จาก Torus) กับตัวอย่างสุ่มที่ถูก encrypted/noise added มาแล้ว” ทำให้การทำ FHE บน Torus จะมีความปลอดภัยที่ถูกการันตีมาแล้ว
ซึ่งการคำนวนบนคอมพิวเตอร์ จะต้องมีการแปลงค่าที่ continuous ให้อยู่ในรูปของ discrete และสามารถกำหนดความแม่นยำ ซึ่งสามารถทำได้ผ่านการทำ Discretization ตัว Torus ยกตัวอย่างตัว sqrt 2 บน Torus ซึ่งสามารถเขียนในรูปของฐาน 10
โดยหากต้องการทศนิยมเพียงทศนิยม 3 หลัก
เราจะสามารถประมาณค่า ผ่าน Discretized Torus ที่ฐาน 10, ทศนิยม 3 หลักได้
ซึ่งในการทำงานจริง เราจะทำงานบนฐาน 2 ที่มี bit precision 32, 64 หลัก
ดังนั้น Discretized Torus (modulo q) จะมีหน้าตา
ซึ่งเป็น subset ของ Torus แต่ตอนที่ implementation elements บน Discretized Torus จะพิจารณาเซ็ตที่เป็น modulo ของจำนวนเต็ม (หากไม่เห็นภาพให้นึกถึงชั่วโมงในนาฬิกาที่มี 12 เลข พอเป็น 13:00 (บ่ายโมง) ก็จะกลับมาเป็นเลข 1 อีกครั้ง แต่บนเซ็ต modulo 12 จริงๆแล้วจะเริ่มที่ 0 แล้วจบที่ 11 ) ซึ่งคือ
เวลาทำงานจริง เพราะ preserve การบวกและการคูณ scalar คล้ายกับคุณสมบัติ (Discretized) Torus ที่มีอยู่แล้ว ซึ่งเป็นการคำนวนที่เกิดขึ้นบนตัวเศษของเศษส่วนบนนั้น (numerator)
1.2 Encryption and Decryption - Secured by Torus
เมื่อเราทำความเข้าใจ Torus และการทำ Discretization แล้ว ขั้นตอนถัดมาจะเข้าสู่ขั้นตอนของการทำ encryption/decryption ผ่านการใช้งาน Torus
โดย space เริ่มต้นของข้อมูล plaintext นั้นจะอยู่บน T_p (Discretized Torus, modulo p) เพื่อที่จะเตรียม encrypt ผ่านฟังก์ชั้น TLWE ไปเป็น ciphertext ที่เป็น n-dimensional tuples บน Discretized Torus, modulo q หรือบน
โดยที่
มี public parameter = {n, \sigma, p, q }
\sigma = standard deviation ของ normal distribution ที่ e (noise/error) ถูกหยิบขึ้นมาโดยที่ e < 1/|2p| (สำหรับการทำ decryption)
ค่า p หาร q ลงตัว (นั่นคือ set ของ plaintext เป็นซับเซ็ตของ ciphertext หรือตัวส่วน ciphertext มีความละเอียดที่มากกว่า)
และมี secret key/private key = s = (s_1,…,s_n) โดยที่ s_i = 0, 1
เราจะสร้างวิธี
1. Encryption
ของ plaintext \mu บน T_p (ซึ่งเป็นค่าบน T_q ด้วย จากการที่ p หาร q ลงตัว) ผ่านการนำ a_1,…,a_n ที่สุ่มมาจาก T_q มาใช้งานกับค่า b ที่ผ่านการ encrypt แล้ว ผ่านสมการ
โดยความหมายคือการ encrypt บนตัวแปร b คือการที่ private key s ทำหน้าที่สุ่มปิดค่า a_i ที่จะใช้ (เพราะค่า s_i ที่เป็น 0 จะทำให้ผลคูณ s_i, a_i หายไป) เพื่อนำไปรวมกับ plaintext (\mu) เดิมที่มี noise เข้ามา (e) ด้วย
2. Decryption
สังเกตุจากสมการด้านบนได้ว่า
สมมติให้
ได้เพราะ \mu อยู่ใน T_p เมื่อให้สัญลักษณ์ ⌊ x ⌉ แทนการหาจำนวนเต็มที่ใกล้เคียงค่า x ที่สุด จึงได้
เพราะ
ดังนั้นเราจะได้วิธีการ decrypt ผ่านสมการ
1.3 Examples

จากตัวอย่างดังกล่าว เราจะมี plaintext ในรูปแบบ
เป็นวงด้านใน และ ciphertext ในรูปแบบ
ซึ่งเป็นวงด้านนอก/ละเอียดกว่า ทำให้ plaintext จะสามารถเขียนได้ในรูปแบบ
โดยที่ noise จะมีค่าได้ตั้งแต่
จะทำให้เมื่อนำ plaintext ไปบวกกับค่า noise แล้วจะไม่ตกช่องสีดำที่ไม่สามารถ decrypt ค่าได้
สมมติค่า private key = 0, plaintext = 1/4, error = 3/64 ทำให้เมื่อทำการ encrypt ตัว plaintext จะได้ค่า b จะเป็น plaintext + error = 19/64 และเมื่อจะดำเนินการ decrypt ค่ากลับ ทำให้สามารถดำเนินการที่ค่า b ได้เลย และจะได้ ⌊4 * (19/64)⌉ mod 4 / 4 = ⌊19/16⌉ mod 4 / 4 = 1/4 ค่าเดิมกลับมา
ท่านผู้อ่านสามารถติดตามได้ในเร็วๆนี้
<100 subscribers
<100 subscribers
No activity yet