ผลต่างระหว่างรุ่นของ "204512/บรรยาย 1"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
(ไม่แสดง 33 รุ่นระหว่างกลางโดยผู้ใช้ 6 คน)
แถว 1: แถว 1:
 +
{{หัวคำบรรยาย|204512}}
 +
'''จดบันทึกคำบรรยายโดย:''' ''(กรุณาใส่ด้วย)''
 +
 
การบรรยายครั้งแรกจะเป็นการแนะนำวิชา [[204512]] และแสดงตัวอย่างการพิสูจน์ที่น่าสนใจ โดยมีเป้าหมายเพื่อที่จะพัฒนาระบบการกระจายความลับ (secret sharing)
 
การบรรยายครั้งแรกจะเป็นการแนะนำวิชา [[204512]] และแสดงตัวอย่างการพิสูจน์ที่น่าสนใจ โดยมีเป้าหมายเพื่อที่จะพัฒนาระบบการกระจายความลับ (secret sharing)
  
 
==คณิตศาสตร์มอดุโล==
 
==คณิตศาสตร์มอดุโล==
;Definition 1:
+
เราจะเริ่มจากนิยามพื้นฐานก่อน เราจะกล่าวว่าจำนวนเต็ม a ''หารจำนวนเต็ม b ลงตัว'' ถ้ามีจำนวนเต็ม k ที่ ak = b เขียนแทนด้วย a|b
จะกล่าวว่าจำนวนเต็ม a ''หารจำนวนเต็ม b ลงตัว'' ถ้ามีจำนวนเต็ม k ที่ ak = b เขียนแทนด้วย a|b
 
  
 
;นิยาม : จำนวนเต็มบวก p ที่ p > 1 และมีตัวประกอบสองจำนวนคือ 1 และตัวมันเองเรียกว่า ''จำนวนเฉพาะ''
 
;นิยาม : จำนวนเต็มบวก p ที่ p > 1 และมีตัวประกอบสองจำนวนคือ 1 และตัวมันเองเรียกว่า ''จำนวนเฉพาะ''
  
;นิยาม : a mod b = r ถ้า 0 <= r < b และมีจำนวนเต็ม k ที่ bk+r = a
+
;นิยาม : <math>a\ \bmod b = r </math>ถ้า<math> 0 \le r < b </math>และมีจำนวนเต็ม ''k'' ที่ <math>b\ k+r = a</math>
  
ตัวอย่าง  
+
'''ตัวอย่าง'''
 
:<math> 10\ \bmod\ 3\ =\ 1</math>
 
:<math> 10\ \bmod\ 3\ =\ 1</math>
  
แถว 16: แถว 18:
 
:<math>a \equiv b \pmod{m}</math> ถ้า  <math>a\ \bmod\ m\ =\ b\ \bmod\ m</math>
 
:<math>a \equiv b \pmod{m}</math> ถ้า  <math>a\ \bmod\ m\ =\ b\ \bmod\ m</math>
  
'''Proposition 1''': <math>a \equiv b \pmod{m}</math> เมื่อและต่อเมื่อ <math>m | a-b</math>
+
เราจะเริ่มพิสูจน์ความจริงพื้นฐานเกี่ยวกับการหารลงตัวก่อน  หลายครั้งเราจะพิสูจน์ความจริงในรูป <math>p\ \leftrightarrow\ q</math> โดยการพิสูจน์ <math>p\ \rightarrow\ q</math> และ <math>q \rightarrow\ p</math>.  นอกจากนี้ ในการพิสูจน์ประโยค <math>p\rightarrow q</math> เรามักใช้การพิสูจน์แบบทางอ้อม (indirect proof) โดยพิสูจน์ <math>\neg q\rightarrow\neg p</math> แทน
  
หลายครั้งเราจะพิสูจน์ความจริงในรูป <math>p\ \leftrightarrow\ q</math> โดยการพิสูจน์ <math>p\ \rightarrow\ q</math>  
+
{{กล่องทฤษฎีบท|
และ <math>q \rightarrow\ p</math>.  นอกจากนี้ ในการพิสูจน์ประโยค <math>p\rightarrow q</math> เรามักใช้การพิสูจน์แบบทางอ้อม (indirect proof) โดยพิสูจน์ <math>\neg q\rightarrow\neg p</math> แทน
+
'''Proposition 1''': <math>a \equiv b \pmod{m}</math> เมื่อและต่อเมื่อ <math>m | a-b</math>}}
 +
{{เริ่มบทพิสูจน์}}
 +
'''Proof:'''
  
'''Proof of Proposition 1:'''
 
 
<math>(\Rightarrow)</math>
 
<math>(\Rightarrow)</math>
  
:proof by picture ...
+
<math>a \equiv b \pmod{m}</math> นั้นคือ
 +
 
 
<math>j\ m + f = a </math>
 
<math>j\ m + f = a </math>
  
 
<math>k\ m + f = b </math>
 
<math>k\ m + f = b </math>
  
<math>(j-k) m = a-b </math>
+
โดยที่ ''j,k,f'' เป็นจำนวนเต็ม หาผลต่างของสมการทั้งสองจะได้
  
<math>m | a - b </math>  
+
<math>(\ j\ -\ k\ )\ m = a\ -\ b </math>
 +
 
 +
นั้นคือ
 +
<math>m \mid a - b </math>  
  
 
<math>(\Leftarrow)</math>
 
<math>(\Leftarrow)</math>
แถว 43: แถว 50:
  
 
<math>b\ \bmod\ m\ =\ a\ \bmod\ m</math>
 
<math>b\ \bmod\ m\ =\ a\ \bmod\ m</math>
 +
{{จบบทพิสูจน์}}
  
 +
{{กล่องเทา|
 
;Propostition : ถ้า <math>a\ \equiv\ b \pmod{m}</math> และ <math>c\ \equiv\ d \pmod{m} </math> แล้ว
 
;Propostition : ถ้า <math>a\ \equiv\ b \pmod{m}</math> และ <math>c\ \equiv\ d \pmod{m} </math> แล้ว
  
แถว 49: แถว 58:
 
# <math>a\,c \equiv b\,d \pmod{m}</math>
 
# <math>a\,c \equiv b\,d \pmod{m}</math>
 
# <math>a-c \equiv b-d \pmod{m}</math>
 
# <math>a-c \equiv b-d \pmod{m}</math>
 
+
}}
proof :  
+
{{เริ่มบทพิสูจน์}}
 +
'''proof:'''
 
:<math>a \equiv b \pmod{m} \rightarrow m|a-b </math>
 
:<math>a \equiv b \pmod{m} \rightarrow m|a-b </math>
 
:<math>c \equiv d \pmod{m} \rightarrow m|c-d </math>
 
:<math>c \equiv d \pmod{m} \rightarrow m|c-d </math>
 
:<math>m|(a+c)-(b+d)  \rightarrow a+c \equiv b+d \pmod{m}</math>
 
:<math>m|(a+c)-(b+d)  \rightarrow a+c \equiv b+d \pmod{m}</math>
 +
{{จบบทพิสูจน์}}
  
 
+
สังเกตว่าประโยค
<math>a\,c \equiv a\,d \pmod{m} \rightarrow c \equiv d \pmod{m}</math>   <--  กรณีนี้ไม่เป็นจริง
+
<center><math>a\,c \equiv a\,d \pmod{m} \rightarrow c \equiv d \pmod{m}</math></center>
 +
นั้นไม่เป็นจริงเสมอไป
  
 
นิยาม: สำหรับถ้า <math>a\,b \equiv 1 \pmod{m}</math> จะเรียก  b ว่าเป็น mutiplicative inverse modulo m  ของ <math>a</math> เขียนแทนด้วย  <math>a^{-1}</math>
 
นิยาม: สำหรับถ้า <math>a\,b \equiv 1 \pmod{m}</math> จะเรียก  b ว่าเป็น mutiplicative inverse modulo m  ของ <math>a</math> เขียนแทนด้วย  <math>a^{-1}</math>
แถว 78: แถว 90:
  
 
<math>4/3  = 4 \cdot 3^{-1} \pmod m</math>
 
<math>4/3  = 4 \cdot 3^{-1} \pmod m</math>
 
----
 
ตัวอย่าง ๆ
 
:<math>a \equiv b \pmod{m}</math> 
 
 
<math>x^2 + \frac{y}{m^n}</math>
 
----
 
  
 
==ตัวหารร่วมมาก (grestest common divisors)==
 
==ตัวหารร่วมมาก (grestest common divisors)==
 
ตัวหารร่วมมาก (gcd) ของ  a และ b คือจำนวนเต็มที่มากที่สุดที่หาร a และ b ลงตัวแทนด้วย gcd(a,b)
 
ตัวหารร่วมมาก (gcd) ของ  a และ b คือจำนวนเต็มที่มากที่สุดที่หาร a และ b ลงตัวแทนด้วย gcd(a,b)
 +
{{กล่องทฤษฎีบท|
 +
'''Thm''':  ให้จำนวนเต็ม a ,m    a จะมี inverse การคูณ modulo m เมื่อและต่อเมื่อ gcd(a,m) เท่ากับ 1 }}
 +
{{เริ่มบทพิสูจน์}}
 +
'''Proof:'''
  
;Thm: ให้จำนวนเต็ม a ,m    a จะมี inverse การคูณ modulo m เมื่อและต่อเมื่อ gcd(a,m) = 1
+
(<=)<br>
;Proof:
+
สมมุติ gcd(a,m) = 1
(<=) สมมุติ gcd(a,m) = 1
 
 
:พิจารณา  
 
:พิจารณา  
 
:: 0 mod m
 
:: 0 mod m
แถว 100: แถว 108:
 
::(m-1)a mod m
 
::(m-1)a mod m
  
;claim 1: จำนวนเหล่านี้ไม่เท่ากันเลย
+
{{กล่องทฤษฎีบท|'''Claim 1:''' จำนวนเหล่านี้ไม่เท่ากันเลย}}
----
+
 
จาก claim 1 จะมีจำนวนเต็ม b ที่อยู่ระหว่าง 0 <= b <= m-1 ที่ b*a mod m = 1 เนื่องจากมีจำนวน m จำนวนไม่ซ้ำกันจากค่าที่เป็นไปได้ระหว่าง 0 ถึง m-1
+
จาก Claim 1 เราจะได้ว่ามีจำนวนเต็ม ''b'' ที่อยู่ระหว่าง <math>\ 0 \leq\ b\ \leq\ m-1 </math> ที่ <math>b\ a\ \bmod\ m = 1 </math> เนื่องจากมีจำนวน ''m'' จำนวนไม่ซ้ำกันจากค่าที่เป็นไปได้ระหว่าง 0 ถึง ''m''-1  
+
 
;Proof Claim1:
+
สรุปคือ inverse การคูณ modulo m ของ a คือ b นั้นเอง
สมมุติให้มีจำนวนเต็ม i =/= j ที่ 0 <= i ,j<= m-1
+
{{จบบทพิสูจน์}}
ที่  i*a mod m = j*a mod m  
+
ต่อไปเราจะพิสูจน์ Claim 1.
จะได้ i*a \eqv j*a (mod m)
+
{{เริ่มบทพิสูจน์}}
หรือ m| i*a - j*a => m|(i-j)*a  
+
'''Proof of Claim1:''' สมมุติให้มีจำนวนเต็ม <math>\ i\  \neq\ j</math> ที่ <math>\ 0\  \leq\ i\ ,j\ \leq\ m-1</math>
 +
:ที่  <math>ia\ \bmod\ m\ =\  ja\ \bmod\ m</math>
 +
:จะได้ <math>ia \equiv\  ja \pmod{m}</math>
 +
:หรือ <math>m\mid ia\ -\ ja \Rightarrow\ m\mid (\ i\ -\ j\ )\ a</math>
 
นั้นคือมีจำนวนเต็ม k ที่  
 
นั้นคือมีจำนวนเต็ม k ที่  
mk = a (i-j)
+
:<math>mk\ =\ a(i-j)</math>
k = a(i-j) / m
+
:<math>k\ =\ \frac{a(i-j)}{ m}</math>
 
จาก gcd(a,m ) =1 จะได้ว่า m ต้องหาร (i -j) ลงตัว
 
จาก gcd(a,m ) =1 จะได้ว่า m ต้องหาร (i -j) ลงตัว
แต่ (i-j) มีค่าได้ตั้งแต่ 1 ถึง m-1 (0; i=/=j)ซึ่งน้อยกว่า m
+
แต่ (i-j) มีค่าได้ตั้งแต่ 1 ถึง m-1 (ไม่เป็น 0 เนื่องจาก <math> i\ \neq\ j\ )</math>ซึ่งน้อยกว่า m
ซึ่งเป็นไปไม่ได้ []
+
ซึ่งเป็นไปไม่ได้
 +
{{จบบทพิสูจน์}}
  
 
  แนวทางการ  
 
  แนวทางการ  
แถว 120: แถว 132:
 
  จะพิสูจน์ (P) สมมุติ <math>\sim P \rightarrow F</math>
 
  จะพิสูจน์ (P) สมมุติ <math>\sim P \rightarrow F</math>
 
  :หรือ<math> \sim(\sim P) \lor \sim F \equiv P </math>
 
  :หรือ<math> \sim(\sim P) \lor \sim F \equiv P </math>
 +
(=>)<br>
 +
ต้องการพิสูจน์ a มี inverse modulo m แล้ว gcd(a,m) = 1
  
 +
{{เริ่มบทพิสูจน์}}
 +
;Proof(Indirect)<nowiki>:</nowiki>
 +
<math> gcd(\ a,\ m) \neq 1 \Rightarrow\ a</math> ไม่มี mutiplicative inverse modulo m
  
(=>) สมมุติ a มี inverse การคูณ modulo m และ gcd(a,m) = 1
+
:ให้ <math>x\ =\ gcd(\ a,\ m)</math>
พิสูจน์ gcd(a,m)=/= 1 a จะไม่มี inverse
+
:หรือ <math>a\  =\  xk_1 , m = xk_2</math>
:ให้ x = gcd(a,m)
+
:พิจารณา <math>ai\ \bmod\ m</math>
:หรือ a = x*k1 , m = x*k2
+
:<math>xk_1i\ \bmod\  xk_2\ =\ 1</math>
:พิจารณา ai (mod m)
+
:<math>xk_1i\ - xk_2j\ = 1</math>
:x*k1 i mod x*k2
+
:<math>x(k_1i\ - k_2j)\ = 1</math>
 +
:ซึ่งจะเห็นว่า ผลลบของเทอมที่คูณ x เป็นจำนวนเต็ม คูณอยู่กับ x ซึ่งมากกว่าหนึ่งจึงเป็นไปไม่ได้ที่ <math>x(k_1i\ - k_2j)</math> เท่ากับ 1
  
 +
{{จบบทพิสูจน์}}
  
 
+
==ยูคลิด gcd alg. ในลักษณะ recursive function==
ยูคลิด gcd alg. ในลักษณะ recursive function
 
 
 
 
funtion GCD(a,b)
 
funtion GCD(a,b)
 
:if b|a then return a
 
:if b|a then return a
:else return gcd(b,a mod b)
+
:else return GCD(b,a mod b)
  
 
===การวิเคราะห์===
 
===การวิเคราะห์===
 
====การวิเคราะห์ความถูกต้อง====
 
====การวิเคราะห์ความถูกต้อง====
กรณี b|a ลงตัว=ชัดเจน
+
;นิยาม:gcd(a,b) คือค่าหารรวมมากของ a กับ b
กรณี GCD(b,a mod b)
 
 
 
 
assume a > b without lose in generality
 
assume a > b without lose in generality
;Proof: GCD(a,b) = gcd(a,b)
+
{{เริ่มบทพิสูจน์}}
พิสูจน์  by induction on (a,b)
+
;Proof by induction on (a,b)<nowiki>:</nowiki> :GCD(a,b) = gcd(a,b)
 
+
base case: ถ้า b=0 , GCD(a,b) =a = gcd(a,b)  
+
;base case<nowiki>:</nowiki>: ถ้า b=0 , GCD(a,b) =a = gcd(a,b)  
 
 
inductive step:ถ้า b > 0 และ a > b แล้ว
 
 
 
:claim 2: GCD(b,a mod b ) = gcd(a,b)
 
 
 
ถ้า y|a และ y|b แล้ว y|a mod b
 
 
 
a = kb + r เขียน r = a mod b
 
  
a-r =kb เนื่องจาก y|b ,y|kb นั้นคือ
+
;inductive step<nowiki>:</nowiki>:ถ้า b > 0 และ a > b แล้ว
  
<math> y|a-r \rightarrow a \equiv r \pmod{y} </math>
+
:'''claim 2''': gcd(b,a mod b ) = gcd(a,b)
 +
:ถ้า y|a และ y|b แล้ว y|a mod b
 +
:<math>a = kb + r </math> หรือ <math> r\ =\ a\ \bmod\ b</math>
 +
:<math>a-r = kb </math>
 +
เนื่องจาก <math> y\mid\ b </math> จะได้ว่า <math> y\mid\ kb </math>  และ <math>y \mid r</math> ด้วย
 +
:ดังนั้น <math> y\mid\ a-r </math>
 +
:<math>\Rightarrow\; a \equiv r \pmod{y} </math>
  
สรุปว่า y|r
 
  
assume  ที่ GCD(x,y)=gcd(x,y)  สำหรับทุกๆ x < a , y <= b ) ; (hypothesis)
+
;hypothesis สมมุติที่ GCD(x,y)=gcd(x,y)  สำหรับทุกๆ x < a , y <= b
นั้นคือ GCD(b,a mod b) = gcd(b, a mod b)
+
:นั้นคือ GCD(b,a mod b) = gcd(b, a mod b)
ดังนั้น GCD(a,b) = GCD(b, a mod b)
+
:ดังนั้น GCD(a,b) = GCD(b, a mod b)
:= gcd(b ,a mod b)
+
::= gcd(b ,a mod b)
:= gcd(a,b) ตาม claim 2
+
::= gcd(a,b) ตาม claim 2
  
 
  Proof by Induction  
 
  Proof by Induction  

รุ่นแก้ไขปัจจุบันเมื่อ 01:01, 21 มีนาคม 2555

บันทึกคำบรรยายวิชา 204512 นี้ เป็นบันทึกที่นิสิตเขียนขึ้น เนื้อหาโดยมากยังไม่ผ่านการตรวจสอบอย่างละเอียด การนำไปใช้ควรระมัดระวัง

จดบันทึกคำบรรยายโดย: (กรุณาใส่ด้วย)

การบรรยายครั้งแรกจะเป็นการแนะนำวิชา 204512 และแสดงตัวอย่างการพิสูจน์ที่น่าสนใจ โดยมีเป้าหมายเพื่อที่จะพัฒนาระบบการกระจายความลับ (secret sharing)

คณิตศาสตร์มอดุโล

เราจะเริ่มจากนิยามพื้นฐานก่อน เราจะกล่าวว่าจำนวนเต็ม a หารจำนวนเต็ม b ลงตัว ถ้ามีจำนวนเต็ม k ที่ ak = b เขียนแทนด้วย a|b

นิยาม 
จำนวนเต็มบวก p ที่ p > 1 และมีตัวประกอบสองจำนวนคือ 1 และตัวมันเองเรียกว่า จำนวนเฉพาะ
นิยาม 
ถ้าและมีจำนวนเต็ม k ที่

ตัวอย่าง

นิยาม 
ถ้า

เราจะเริ่มพิสูจน์ความจริงพื้นฐานเกี่ยวกับการหารลงตัวก่อน หลายครั้งเราจะพิสูจน์ความจริงในรูป โดยการพิสูจน์ และ . นอกจากนี้ ในการพิสูจน์ประโยค เรามักใช้การพิสูจน์แบบทางอ้อม (indirect proof) โดยพิสูจน์ แทน

Proposition 1: เมื่อและต่อเมื่อ


Proof:

นั้นคือ

โดยที่ j,k,f เป็นจำนวนเต็ม หาผลต่างของสมการทั้งสองจะได้

นั้นคือ

เนื่องจาก m | a-b เราจะได้ว่ามีจำนวนเต็ม k ที่

Littlebox.png

Propostition 
ถ้า และ แล้ว

proof:

Littlebox.png

สังเกตว่าประโยค

นั้นไม่เป็นจริงเสมอไป

นิยาม: สำหรับถ้า จะเรียก b ว่าเป็น mutiplicative inverse modulo m ของ เขียนแทนด้วย

เช่น

ถ้ามี inverse สามารถหาผลหารได้โดยเอา inverse ไปคูณ

ตัวหารร่วมมาก (grestest common divisors)

ตัวหารร่วมมาก (gcd) ของ a และ b คือจำนวนเต็มที่มากที่สุดที่หาร a และ b ลงตัวแทนด้วย gcd(a,b)

Thm: ให้จำนวนเต็ม a ,m a จะมี inverse การคูณ modulo m เมื่อและต่อเมื่อ gcd(a,m) เท่ากับ 1


Proof:

(<=)
สมมุติ gcd(a,m) = 1

พิจารณา
0 mod m
a mod m
2a mod m
3a mod m
. . .
(m-1)a mod m

Claim 1: จำนวนเหล่านี้ไม่เท่ากันเลย

จาก Claim 1 เราจะได้ว่ามีจำนวนเต็ม b ที่อยู่ระหว่าง ที่ เนื่องจากมีจำนวน m จำนวนไม่ซ้ำกันจากค่าที่เป็นไปได้ระหว่าง 0 ถึง m-1

สรุปคือ inverse การคูณ modulo m ของ a คือ b นั้นเอง

Littlebox.png

ต่อไปเราจะพิสูจน์ Claim 1.


Proof of Claim1: สมมุติให้มีจำนวนเต็ม ที่

ที่
จะได้
หรือ

นั้นคือมีจำนวนเต็ม k ที่

จาก gcd(a,m ) =1 จะได้ว่า m ต้องหาร (i -j) ลงตัว แต่ (i-j) มีค่าได้ตั้งแต่ 1 ถึง m-1 (ไม่เป็น 0 เนื่องจาก ซึ่งน้อยกว่า m ซึ่งเป็นไปไม่ได้

Littlebox.png

แนวทางการ 
Proof by Contradiction
จะพิสูจน์ (P) สมมุติ 
:หรือ

(=>)
ต้องการพิสูจน์ a มี inverse modulo m แล้ว gcd(a,m) = 1


Proof(Indirect):

ไม่มี mutiplicative inverse modulo m

ให้
หรือ
พิจารณา
ซึ่งจะเห็นว่า ผลลบของเทอมที่คูณ x เป็นจำนวนเต็ม คูณอยู่กับ x ซึ่งมากกว่าหนึ่งจึงเป็นไปไม่ได้ที่ เท่ากับ 1
Littlebox.png

ยูคลิด gcd alg. ในลักษณะ recursive function

funtion GCD(a,b)

if b|a then return a
else return GCD(b,a mod b)

การวิเคราะห์

การวิเคราะห์ความถูกต้อง

นิยาม
gcd(a,b) คือค่าหารรวมมากของ a กับ b

assume a > b without lose in generality


Proof by induction on (a,b):
GCD(a,b) = gcd(a,b)
base case:
ถ้า b=0 , GCD(a,b) =a = gcd(a,b)
inductive step:
ถ้า b > 0 และ a > b แล้ว
claim 2: gcd(b,a mod b ) = gcd(a,b)
ถ้า y|a และ y|b แล้ว y|a mod b
หรือ

เนื่องจาก จะได้ว่า และ ด้วย

ดังนั้น


hypothesis สมมุติที่ GCD(x,y)=gcd(x,y) สำหรับทุกๆ x < a , y <= b
นั้นคือ GCD(b,a mod b) = gcd(b, a mod b)
ดังนั้น GCD(a,b) = GCD(b, a mod b)
= gcd(b ,a mod b)
= gcd(a,b) ตาม claim 2

Proof by Induction :พิสูจน์ว่า P(i) จริงสำหรับจำนวนเต็มบวก i ทุกๆตัว ## P(1) จริง [base case] [basis] ## ถ้า P(i) แล้ว P(i+1) จริงสำหรับทุกๆ i >=1 ; P(i) จริงจาก P(j) j < i [inductive step] ถ้า (a)&(b) จะสรุปได้ว่า P(i) จริงสำหรับทุกจำนวนเต็ม i

การวิเคราะห์เวลาการทำงาน

การหา multiplicative inverse mudulo m

lemma: สำหรับจำนวนเต็ม a และ b มีจำนวนเต็ม x,y ที่ ax + by = gcd(a,b) ; x และ y หาได้จาก extended gcd alg. >จะหา \inv a (mod m) เมื่อ gcd(a,m) = 1

จะมี x,y ที่ ax + my = 1

mod m

(ax + my) mod m = 1
ax mod m = 1

เลือก mod p เมื่อ p เป็นจำนวนเฉพาะ จะได้ทุกๅ a e {1,2,3,...,p-1} , gcd(a,p) = 1 ; [GFp(Galois Field)]

การกระจายความลับ (Secret Sharing)

ถ้า polynomial f มี degree d เราสามารถให้ จะมี polynomial degree d เพียงตัวเดียวที่ผ่าน ทุกจุดดังกล่าว และ polynomial ดังกล่าวหาได้

ต้องการ key M ให้กลุ่มคน n คน ให้ทุกๆกลุ่มคน < k คน ไม่ทราบข้อมูลเกี่ยวกับ key เลย

กลุ่มคน k คนหา key ได้

หา prime p > key และ p - 1 > n เลือก จากเซต { 1, 2, ... , p-1}

ให้ ak-1 ไม่เท่ากับ 0

ให้ เราจะเลือกจุด ที่ไม่ซ้ำกัรและไม่เท่ากับ 0 ให้ กับคนที่ i