|
|
(ไม่แสดง 5 รุ่นระหว่างกลางโดยผู้ใช้ 2 คน) |
แถว 1: |
แถว 1: |
− | carolc
| + | {{หัวคำบรรยาย|204512}} |
− | litabasacel
| + | '''จดบันทึกคำบรรยายโดย:''' ''(กรุณาใส่ด้วย)'' |
− | {{à ¸«à ¸±à ¸§à ¸Âà ¸³à ¸Âà ¸£à ¸£à ¸¢à ¸²à ¸¢|204512}} | |
− | '''à ¸Âà ¸Âà ¸Âà ¸±à ¸Âà ¸Âà ¸¶à ¸Âà ¸Âà ¸³à ¸Âà ¸£à ¸£à ¸¢à ¸²à ¸¢à ¹Âà ¸Âà ¸¢:''' ''(à ¸Âà ¸£à ¸¸à ¸Âà ¸²à ¹Âà ¸ªà ¹Âà ¸Âà ¹Âà ¸§à ¸¢)'' | |
| | | |
− | à ¸Âà ¸²à ¸£à ¸Âà ¸£à ¸£à ¸¢à ¸²à ¸¢à ¸Âà ¸£à ¸±à ¹Âà ¸Âà ¹Âà ¸£à ¸Âà ¸Âà ¸°à ¹Âà ¸Âà ¹Âà ¸Âà ¸Âà ¸²à ¸£à ¹Âà ¸Âà ¸°à ¸Âà ¸³à ¸§à ¸´à ¸Âà ¸² [[204512]] à ¹Âà ¸¥à ¸°à ¹Âà ¸ªà ¸Âà ¸Âà ¸Âà ¸±à ¸§à ¸Âà ¸¢à ¹Âà ¸²à ¸Âà ¸Âà ¸²à ¸£à ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Âà ¸Âà ¸µà ¹Âà ¸Âà ¹Âà ¸²à ¸ªà ¸Âà ¹Âà ¸ à ¹Âà ¸Âà ¸¢à ¸¡à ¸µà ¹Âà ¸Âà ¹Âà ¸²à ¸«à ¸¡à ¸²à ¸¢à ¹Âà ¸Âà ¸·à ¹Âà ¸Âà ¸Âà ¸µà ¹Âà ¸Âà ¸°à ¸Âà ¸±à ¸Âà ¸Âà ¸²à ¸£à ¸°à ¸Âà ¸Âà ¸Âà ¸²à ¸£à ¸Âà ¸£à ¸°à ¸Âà ¸²à ¸¢à ¸Âà ¸§à ¸²à ¸¡à ¸¥à ¸±à ¸ (secret sharing)
| + | การบรรยายครั้งแรกจะเป็นการแนะนำวิชา [[204512]] และแสดงตัวอย่างการพิสูจน์ที่น่าสนใจ โดยมีเป้าหมายเพื่อที่จะพัฒนาระบบการกระจายความลับ (secret sharing) |
| | | |
− | ==à ¸Âà ¸Âà ¸´à ¸Âà ¸¨à ¸²à ¸ªà ¸Âà ¸£à ¹Âà ¸¡à ¸Âà ¸Âà ¸¸à ¹Âà ¸¥== | + | ==คณิตศาสตร์มอดุโล== |
− | à ¹Âà ¸£à ¸²à ¸Âà ¸°à ¹Âà ¸£à ¸´à ¹Âà ¸¡à ¸Âà ¸²à ¸Âà ¸Âà ¸´à ¸¢à ¸²à ¸¡à ¸Âà ¸·à ¹Âà ¸Âà ¸Âà ¸²à ¸Âà ¸Âà ¹Âà ¸Âà ¸ à ¹Âà ¸£à ¸²à ¸Âà ¸°à ¸Âà ¸¥à ¹Âà ¸²à ¸§à ¸§à ¹Âà ¸²à ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ a ''à ¸«à ¸²à ¸£à ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ b à ¸¥à ¸Âà ¸Âà ¸±à ¸§'' à ¸Âà ¹Âà ¸²à ¸¡à ¸µà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ k à ¸Âà ¸µà ¹ ak = b à ¹Âà ¸Âà ¸µà ¸¢à ¸Âà ¹Âà ¸Âà ¸Âà ¸Âà ¹Âà ¸§à ¸¢ a|b
| + | เราจะเริ่มจากนิยามพื้นฐานก่อน เราจะกล่าวว่าจำนวนเต็ม a ''หารจำนวนเต็ม b ลงตัว'' ถ้ามีจำนวนเต็ม k ที่ ak = b เขียนแทนด้วย a|b |
| | | |
− | ;à ¸Âà ¸´à ¸¢à ¸²à ¸¡ : à ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡à ¸Âà ¸§à ¸ p à ¸Âà ¸µà ¹ p > 1 à ¹Âà ¸¥à ¸°à ¸¡à ¸µà ¸Âà ¸±à ¸§à ¸Âà ¸£à ¸°à ¸Âà ¸Âà ¸Âà ¸ªà ¸Âà ¸Âà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¸Âà ¸·à ¸ 1 à ¹Âà ¸¥à ¸°à ¸Âà ¸±à ¸§à ¸¡à ¸±à ¸Âà ¹Âà ¸Âà ¸Âà ¹Âà ¸£à ¸µà ¸¢à ¸Âà ¸§à ¹Âà ¸² ''à ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¸Âà ¸²à ¸°'' | + | ;นิยาม : จำนวนเต็มบวก p ที่ p > 1 และมีตัวประกอบสองจำนวนคือ 1 และตัวมันเองเรียกว่า ''จำนวนเฉพาะ'' |
| | | |
− | ;à ¸Âà ¸´à ¸¢à ¸²à ¸¡ : <math>a\ \bmod b = r </math>à ¸Âà ¹Âà ¸²<math> 0 \le r < b </math>à ¹Âà ¸¥à ¸°à ¸¡à ¸µà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ ''k'' à ¸Âà ¸µà ¹ <math>b\ k+r = a</math> | + | ;นิยาม : <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> |
| | | |
| :<math>-10\ \bmod\ 3\ =\ 2\quad;\quad 3(-4)\ +\ 2\ =\ -10</math> | | :<math>-10\ \bmod\ 3\ =\ 2\quad;\quad 3(-4)\ +\ 2\ =\ -10</math> |
− | ;à ¸Âà ¸´à ¸¢à ¸²à ¸¡ : | + | ;นิยาม : |
− | :<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> |
| | | |
− | à ¹Âà ¸£à ¸²à ¸Âà ¸°à ¹Âà ¸£à ¸´à ¹Âà ¸¡à ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Âà ¸Âà ¸§à ¸²à ¸¡à ¸Âà ¸£à ¸´à ¸Âà ¸Âà ¸·à ¹Âà ¸Âà ¸Âà ¸²à ¸Âà ¹Âà ¸Âà ¸µà ¹Âà ¸¢à ¸§à ¸Âà ¸±à ¸Âà ¸Âà ¸²à ¸£à ¸«à ¸²à ¸£à ¸¥à ¸Âà ¸Âà ¸±à ¸§à ¸Âà ¹Âà ¸Âà ¸ à ¸«à ¸¥à ¸²à ¸¢à ¸Âà ¸£à ¸±à ¹Âà ¸Âà ¹Âà ¸£à ¸²à ¸Âà ¸°à ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Âà ¸Âà ¸§à ¸²à ¸¡à ¸Âà ¸£à ¸´à ¸Âà ¹Âà ¸Âà ¸£à ¸¹à ¸ <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>}} | + | '''Proposition 1''': <math>a \equiv b \pmod{m}</math> เมื่อและต่อเมื่อ <math>m | a-b</math>}} |
− | {{à ¹Âà ¸£à ¸´à ¹Âà ¸¡à ¸Âà ¸Âà ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Â}} | + | {{เริ่มบทพิสูจน์}} |
| '''Proof:''' | | '''Proof:''' |
| | | |
| <math>(\Rightarrow)</math> | | <math>(\Rightarrow)</math> |
| | | |
− | <math>a \equiv b \pmod{m}</math> à ¸Âà ¸±à ¹Âà ¸Âà ¸Âà ¸·à ¸ | + | <math>a \equiv b \pmod{m}</math> นั้นคือ |
| | | |
| <math>j\ m + f = a </math> | | <math>j\ m + f = a </math> |
แถว 35: |
แถว 33: |
| <math>k\ m + f = b </math> | | <math>k\ m + f = b </math> |
| | | |
− | à ¹Âà ¸Âà ¸¢à ¸Âà ¸µà ¹ ''j,k,f'' à ¹Âà ¸Âà ¹Âà ¸Âà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ à ¸«à ¸²à ¸Âà ¸¥à ¸Âà ¹Âà ¸²à ¸Âà ¸Âà ¸Âà ¸Âà ¸ªà ¸¡à ¸Âà ¸²à ¸£à ¸Âà ¸±à ¹Âà ¸Âà ¸ªà ¸Âà ¸Âà ¸Âà ¸°à ¹Âà ¸Âà ¹Â
| + | โดยที่ ''j,k,f'' เป็นจำนวนเต็ม หาผลต่างของสมการทั้งสองจะได้ |
| | | |
| <math>(\ j\ -\ k\ )\ m = a\ -\ b </math> | | <math>(\ j\ -\ k\ )\ m = a\ -\ b </math> |
| | | |
− | à ¸Âà ¸±à ¹Âà ¸Âà ¸Âà ¸·à ¸Â
| + | นั้นคือ |
| <math>m \mid a - b </math> | | <math>m \mid a - b </math> |
| | | |
| <math>(\Leftarrow)</math> | | <math>(\Leftarrow)</math> |
| | | |
− | :à ¹Âà ¸Âà ¸·à ¹Âà ¸Âà ¸Âà ¸Âà ¸²à ¸ m | a-b à ¹Âà ¸£à ¸²à ¸Âà ¸°à ¹Âà ¸Âà ¹Âà ¸§à ¹Âà ¸²à ¸¡à ¸µà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ k à ¸Âà ¸µà ¹ | + | :เนื่องจาก m | a-b เราจะได้ว่ามีจำนวนเต็ม k ที่ |
| <math>m\,k = a - b</math> | | <math>m\,k = a - b</math> |
| | | |
แถว 52: |
แถว 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> แล้ว |
| | | |
| # <math>a+c \equiv b+d \pmod{m}</math> | | # <math>a+c \equiv b+d \pmod{m}</math> |
แถว 61: |
แถว 59: |
| # <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> |
− | {{à ¸Âà ¸Âà ¸Âà ¸Âà ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Â}} | + | {{จบบทพิสูจน์}} |
| | | |
− | à ¸ªà ¸±à ¸Âà ¹Âà ¸Âà ¸Âà ¸§à ¹Âà ¸²à ¸Âà ¸£à ¸°à ¹Âà ¸¢à ¸Â
| + | สังเกตว่าประโยค |
| <center><math>a\,c \equiv a\,d \pmod{m} \rightarrow c \equiv d \pmod{m}</math></center> | | <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> |
| | | |
− | à ¹Âà ¸Âà ¹Âà ¸Â
| + | เช่น |
| :<math>3*3 \equiv 1 \pmod{4} </math> | | :<math>3*3 \equiv 1 \pmod{4} </math> |
| :<math>3 = 3^{-1} \pmod{4} </math> | | :<math>3 = 3^{-1} \pmod{4} </math> |
แถว 89: |
แถว 87: |
| :<math>x \equiv 2 \cdot 5 \equiv 10 \equiv 3 \pmod 7</math> | | :<math>x \equiv 2 \cdot 5 \equiv 10 \equiv 3 \pmod 7</math> |
| | | |
− | à ¸Âà ¹Âà ¸²à ¸¡à ¸µ inverse à ¸ªà ¸²à ¸¡à ¸²à ¸£à ¸Âà ¸«à ¸²à ¸Âà ¸¥à ¸«à ¸²à ¸£à ¹Âà ¸Âà ¹Âà ¹Âà ¸Âà ¸¢à ¹Âà ¸Âà ¸² inverse à ¹Âà ¸Âà ¸Âà ¸¹à ¸Â
| + | ถ้ามี inverse สามารถหาผลหารได้โดยเอา inverse ไปคูณ |
| | | |
| <math>4/3 = 4 \cdot 3^{-1} \pmod m</math> | | <math>4/3 = 4 \cdot 3^{-1} \pmod m</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 }} | + | '''Thm''': ให้จำนวนเต็ม a ,m a จะมี inverse การคูณ modulo m เมื่อและต่อเมื่อ gcd(a,m) เท่ากับ 1 }} |
− | {{à ¹Âà ¸£à ¸´à ¹Âà ¸¡à ¸Âà ¸Âà ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Â}} | + | {{เริ่มบทพิสูจน์}} |
| '''Proof:''' | | '''Proof:''' |
| | | |
| (<=)<br> | | (<=)<br> |
− | à ¸ªà ¸¡à ¸¡à ¸¸à ¸Âà ¸´ gcd(a,m) = 1
| + | สมมุติ gcd(a,m) = 1 |
− | :à ¸Âà ¸´à ¸Âà ¸²à ¸£à ¸Âà ¸² | + | :พิจารณา |
| :: 0 mod m | | :: 0 mod m |
| :: a mod m | | :: a mod m |
แถว 110: |
แถว 108: |
| ::(m-1)a mod m | | ::(m-1)a mod m |
| | | |
− | {{à ¸Âà ¸¥à ¹Âà ¸Âà ¸Âà ¸Âà ¸¤à ¸©à ¸Âà ¸µà ¸Âà ¸Â|'''Claim 1:''' à ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸«à ¸¥à ¹Âà ¸²à ¸Âà ¸µà ¹Âà ¹Âà ¸¡à ¹Âà ¹Âà ¸Âà ¹Âà ¸²à ¸Âà ¸±à ¸Âà ¹Âà ¸¥à ¸¢}} | + | {{กล่องทฤษฎีบท|'''Claim 1:''' จำนวนเหล่านี้ไม่เท่ากันเลย}} |
| | | |
− | à ¸Âà ¸²à ¸ Claim 1 à ¹Âà ¸£à ¸²à ¸Âà ¸°à ¹Âà ¸Âà ¹Âà ¸§à ¹Âà ¸²à ¸¡à ¸µà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ ''b'' à ¸Âà ¸µà ¹Âà ¸Âà ¸¢à ¸¹à ¹Âà ¸£à ¸°à ¸«à ¸§à ¹Âà ¸²à ¸ <math>\ 0 \leq\ b\ \leq\ m-1 </math> à ¸Âà ¸µà ¹ <math>b\ a\ \bmod\ m = 1 </math> à ¹Âà ¸Âà ¸·à ¹Âà ¸Âà ¸Âà ¸Âà ¸²à ¸Âà ¸¡à ¸µà ¸Âà ¸³à ¸Âà ¸§à ¸ ''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 |
| | | |
− | à ¸ªà ¸£à ¸¸à ¸Âà ¸Âà ¸·à ¸ inverse à ¸Âà ¸²à ¸£à ¸Âà ¸¹à ¸ modulo m à ¸Âà ¸Âà ¸ a à ¸Âà ¸·à ¸ b à ¸Âà ¸±à ¹Âà ¸Âà ¹Âà ¸Âà ¸Â
| + | สรุปคือ inverse การคูณ modulo m ของ a คือ b นั้นเอง |
− | {{à ¸Âà ¸Âà ¸Âà ¸Âà ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Â}} | + | {{จบบทพิสูจน์}} |
− | à ¸Âà ¹Âà ¸Âà ¹Âà ¸Âà ¹Âà ¸£à ¸²à ¸Âà ¸°à ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹ Claim 1.
| + | ต่อไปเราจะพิสูจน์ Claim 1. |
− | {{à ¹Âà ¸£à ¸´à ¹Âà ¸¡à ¸Âà ¸Âà ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Â}} | + | {{เริ่มบทพิสูจน์}} |
− | '''Proof of Claim1:''' à ¸ªà ¸¡à ¸¡à ¸¸à ¸Âà ¸´à ¹Âà ¸«à ¹Âà ¸¡à ¸µà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ <math>\ i\ \neq\ j</math> à ¸Âà ¸µà ¹ <math>\ 0\ \leq\ i\ ,j\ \leq\ m-1</math> | + | '''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\ \bmod\ m\ =\ ja\ \bmod\ m</math> |
− | :à ¸Âà ¸°à ¹Âà ¸Âà ¹ <math>ia \equiv\ ja \pmod{m}</math> | + | :จะได้ <math>ia \equiv\ ja \pmod{m}</math> |
− | :à ¸«à ¸£à ¸·à ¸ <math>m\mid ia\ -\ ja \Rightarrow\ m\mid (\ i\ -\ j\ )\ a</math> | + | :หรือ <math>m\mid ia\ -\ ja \Rightarrow\ m\mid (\ i\ -\ j\ )\ a</math> |
− | à ¸Âà ¸±à ¹Âà ¸Âà ¸Âà ¸·à ¸Âà ¸¡à ¸µà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ k à ¸Âà ¸µà ¹Â
| + | นั้นคือมีจำนวนเต็ม k ที่ |
| :<math>mk\ =\ a(i-j)</math> | | :<math>mk\ =\ a(i-j)</math> |
| :<math>k\ =\ \frac{a(i-j)}{ m}</math> | | :<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 à ¹Âà ¸Âà ¸·à ¹Âà ¸Âà ¸Âà ¸Âà ¸²à ¸ <math> i\ \neq\ j\ )</math>à ¸Âà ¸¶à ¹Âà ¸Âà ¸Âà ¹Âà ¸Âà ¸¢à ¸Âà ¸§à ¹Âà ¸² m
| + | แต่ (i-j) มีค่าได้ตั้งแต่ 1 ถึง m-1 (ไม่เป็น 0 เนื่องจาก <math> i\ \neq\ j\ )</math>ซึ่งน้อยกว่า m |
− | à ¸Âà ¸¶à ¹Âà ¸Âà ¹Âà ¸Âà ¹Âà ¸Âà ¹Âà ¸Âà ¹Âà ¸¡à ¹Âà ¹Âà ¸Âà ¹Â
| + | ซึ่งเป็นไปไม่ได้ |
− | {{à ¸Âà ¸Âà ¸Âà ¸Âà ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Â}} | + | {{จบบทพิสูจน์}} |
| | | |
− | à ¹Âà ¸Âà ¸§à ¸Âà ¸²à ¸Âà ¸Âà ¸²à ¸£ | + | แนวทางการ |
| Proof by Contradiction | | Proof by Contradiction |
− | à ¸Âà ¸°à ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹ (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> | | (=>)<br> |
− | à ¸Âà ¹Âà ¸Âà ¸Âà ¸Âà ¸²à ¸£à ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹ a à ¸¡à ¸µ inverse modulo m à ¹Âà ¸¥à ¹Âà ¸§ gcd(a,m) = 1
| + | ต้องการพิสูจน์ a มี inverse modulo m แล้ว gcd(a,m) = 1 |
| | | |
− | {{à ¹Âà ¸£à ¸´à ¹Âà ¸¡à ¸Âà ¸Âà ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Â}} | + | {{เริ่มบทพิสูจน์}} |
| ;Proof(Indirect)<nowiki>:</nowiki> | | ;Proof(Indirect)<nowiki>:</nowiki> |
− | <math> gcd(\ a,\ m) \neq 1 \Rightarrow\ a</math> à ¹Âà ¸¡à ¹Âà ¸¡à ¸µ mutiplicative inverse modulo m | + | <math> gcd(\ a,\ m) \neq 1 \Rightarrow\ a</math> ไม่มี mutiplicative inverse modulo m |
| | | |
− | :à ¹Âà ¸«à ¹ <math>x\ =\ gcd(\ a,\ m)</math> | + | :ให้ <math>x\ =\ gcd(\ a,\ m)</math> |
− | :à ¸«à ¸£à ¸·à ¸ <math>a\ =\ xk_1 , m = xk_2</math> | + | :หรือ <math>a\ =\ xk_1 , m = xk_2</math> |
− | :à ¸Âà ¸´à ¸Âà ¸²à ¸£à ¸Âà ¸² <math>ai\ \bmod\ m</math> | + | :พิจารณา <math>ai\ \bmod\ m</math> |
| :<math>xk_1i\ \bmod\ xk_2\ =\ 1</math> | | :<math>xk_1i\ \bmod\ xk_2\ =\ 1</math> |
| :<math>xk_1i\ - xk_2j\ = 1</math> | | :<math>xk_1i\ - xk_2j\ = 1</math> |
| :<math>x(k_1i\ - k_2j)\ = 1</math> | | :<math>x(k_1i\ - k_2j)\ = 1</math> |
− | :à ¸Âà ¸¶à ¹Âà ¸Âà ¸Âà ¸°à ¹Âà ¸«à ¹Âà ¸Âà ¸§à ¹Âà ¸² à ¸Âà ¸¥à ¸¥à ¸Âà ¸Âà ¸Âà ¸Âà ¹Âà ¸Âà ¸Âà ¸¡à ¸Âà ¸µà ¹Âà ¸Âà ¸¹à ¸ x à ¹Âà ¸Âà ¹Âà ¸Âà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ à ¸Âà ¸¹à ¸Âà ¸Âà ¸¢à ¸¹à ¹Âà ¸Âà ¸±à ¸ x à ¸Âà ¸¶à ¹Âà ¸Âà ¸¡à ¸²à ¸Âà ¸Âà ¸§à ¹Âà ¸²à ¸«à ¸Âà ¸¶à ¹Âà ¸Âà ¸Âà ¸¶à ¸Âà ¹Âà ¸Âà ¹Âà ¸Âà ¹Âà ¸Âà ¹Âà ¸¡à ¹Âà ¹Âà ¸Âà ¹Âà ¸Âà ¸µà ¹ <math>x(k_1i\ - k_2j)</math> à ¹Âà ¸Âà ¹Âà ¸²à ¸Âà ¸±à ¸ 1 | + | :ซึ่งจะเห็นว่า ผลลบของเทอมที่คูณ 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) |
| | | |
− | ===à ¸Âà ¸²à ¸£à ¸§à ¸´à ¹Âà ¸Âà ¸£à ¸²à ¸°à ¸«à ¹Â=== | + | ===การวิเคราะห์=== |
− | ====à ¸Âà ¸²à ¸£à ¸§à ¸´à ¹Âà ¸Âà ¸£à ¸²à ¸°à ¸«à ¹Âà ¸Âà ¸§à ¸²à ¸¡à ¸Âà ¸¹à ¸Âà ¸Âà ¹Âà ¸Âà ¸Â==== | + | ====การวิเคราะห์ความถูกต้อง==== |
− | ;à ¸Âà ¸´à ¸¢à ¸²à ¸¡:gcd(a,b) à ¸Âà ¸·à ¸Âà ¸Âà ¹Âà ¸²à ¸«à ¸²à ¸£à ¸£à ¸§à ¸¡à ¸¡à ¸²à ¸Âà ¸Âà ¸Âà ¸ a à ¸Âà ¸±à ¸ b | + | ;นิยาม:gcd(a,b) คือค่าหารรวมมากของ a กับ b |
| assume a > b without lose in generality | | assume a > b without lose in generality |
− | {{à ¹Âà ¸£à ¸´à ¹Âà ¸¡à ¸Âà ¸Âà ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Â}} | + | {{เริ่มบทพิสูจน์}} |
| ;Proof by induction on (a,b)<nowiki>:</nowiki> :GCD(a,b) = gcd(a,b) | | ;Proof by induction on (a,b)<nowiki>:</nowiki> :GCD(a,b) = gcd(a,b) |
| | | |
− | ;base case<nowiki>:</nowiki>: à ¸Âà ¹Âà ¸² b=0 , GCD(a,b) =a = gcd(a,b) | + | ;base case<nowiki>:</nowiki>: ถ้า b=0 , GCD(a,b) =a = gcd(a,b) |
| | | |
− | ;inductive step<nowiki>:</nowiki>:à ¸Âà ¹Âà ¸² b > 0 à ¹Âà ¸¥à ¸° a > b à ¹Âà ¸¥à ¹Âà ¸§ | + | ;inductive step<nowiki>:</nowiki>:ถ้า b > 0 และ a > b แล้ว |
| | | |
| :'''claim 2''': gcd(b,a mod b ) = gcd(a,b) | | :'''claim 2''': gcd(b,a mod b ) = gcd(a,b) |
− | :à ¸Âà ¹Âà ¸² y|a à ¹Âà ¸¥à ¸° y|b à ¹Âà ¸¥à ¹Âà ¸§ y|a mod b | + | :ถ้า y|a และ y|b แล้ว y|a mod b |
− | :<math>a = kb + r </math> à ¸«à ¸£à ¸·à ¸ <math> r\ =\ a\ \bmod\ b</math> | + | :<math>a = kb + r </math> หรือ <math> r\ =\ a\ \bmod\ b</math> |
| :<math>a-r = kb </math> | | :<math>a-r = kb </math> |
− | à ¹Âà ¸Âà ¸·à ¹Âà ¸Âà ¸Âà ¸Âà ¸²à ¸ <math> y\mid\ b </math> à ¸Âà ¸°à ¹Âà ¸Âà ¹Âà ¸§à ¹Âà ¸² <math> y\mid\ kb </math> à ¹Âà ¸¥à ¸° <math>y \mid r</math> à ¸Âà ¹Âà ¸§à ¸¢
| + | เนื่องจาก <math> y\mid\ b </math> จะได้ว่า <math> y\mid\ kb </math> และ <math>y \mid r</math> ด้วย |
− | :à ¸Âà ¸±à ¸Âà ¸Âà ¸±à ¹Âà ¸ <math> y\mid\ a-r </math> | + | :ดังนั้น <math> y\mid\ a-r </math> |
| :<math>\Rightarrow\; a \equiv r \pmod{y} </math> | | :<math>\Rightarrow\; a \equiv r \pmod{y} </math> |
| | | |
| | | |
− | ;hypothesis à ¸ªà ¸¡à ¸¡à ¸¸à ¸Âà ¸´à ¸Âà ¸µà ¹ GCD(x,y)=gcd(x,y) à ¸ªà ¸³à ¸«à ¸£à ¸±à ¸Âà ¸Âà ¸¸à ¸Âà ¹ x < a , y <= b | + | ;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 |
− | :à ¸Âà ¸´à ¸ªà ¸¹à ¸Âà ¸Âà ¹Âà ¸§à ¹Âà ¸² P(i) à ¸Âà ¸£à ¸´à ¸Âà ¸ªà ¸³à ¸«à ¸£à ¸±à ¸Âà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡à ¸Âà ¸§à ¸ i à ¸Âà ¸¸à ¸Âà ¹Âà ¸Âà ¸±à ¸§ | + | :พิสูจน์ว่า P(i) จริงสำหรับจำนวนเต็มบวก i ทุกๆตัว |
− | ## P(1) à ¸Âà ¸£à ¸´à ¸ [base case] [basis] | + | ## P(1) จริง [base case] [basis] |
− | ## à ¸Âà ¹Âà ¸² P(i) à ¹Âà ¸¥à ¹Âà ¸§ P(i+1) à ¸Âà ¸£à ¸´à ¸Âà ¸ªà ¸³à ¸«à ¸£à ¸±à ¸Âà ¸Âà ¸¸à ¸Âà ¹ i >=1 ; P(i) à ¸Âà ¸£à ¸´à ¸Âà ¸Âà ¸²à ¸ P(j) j < i [inductive step] | + | ## ถ้า P(i) แล้ว P(i+1) จริงสำหรับทุกๆ i >=1 ; P(i) จริงจาก P(j) j < i [inductive step] |
− | à ¸Âà ¹Âà ¸² (a)&(b) à ¸Âà ¸°à ¸ªà ¸£à ¸¸à ¸Âà ¹Âà ¸Âà ¹Âà ¸§à ¹Âà ¸² P(i) à ¸Âà ¸£à ¸´à ¸Âà ¸ªà ¸³à ¸«à ¸£à ¸±à ¸Âà ¸Âà ¸¸à ¸Âà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ i | + | ถ้า (a)&(b) จะสรุปได้ว่า P(i) จริงสำหรับทุกจำนวนเต็ม i |
| | | |
− | ====à ¸Âà ¸²à ¸£à ¸§à ¸´à ¹Âà ¸Âà ¸£à ¸²à ¸°à ¸«à ¹Âà ¹Âà ¸§à ¸¥à ¸²à ¸Âà ¸²à ¸£à ¸Âà ¸³à ¸Âà ¸²à ¸Â==== | + | ====การวิเคราะห์เวลาการทำงาน==== |
− | ;à ¸Âà ¸²à ¸£à ¸«à ¸² multiplicative inverse mudulo m | + | ;การหา multiplicative inverse mudulo m |
− | lemma: à ¸ªà ¸³à ¸«à ¸£à ¸±à ¸Âà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ a à ¹Âà ¸¥à ¸° b à ¸¡à ¸µà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¹Âà ¸¡ x,y à ¸Âà ¸µà ¹ ax + by = gcd(a,b) ; x à ¹Âà ¸¥à ¸° y à ¸«à ¸²à ¹Âà ¸Âà ¹Âà ¸Âà ¸²à ¸ [[extended gcd alg.]] | + | lemma: สำหรับจำนวนเต็ม a และ b มีจำนวนเต็ม x,y ที่ ax + by = gcd(a,b) ; x และ y หาได้จาก [[extended gcd alg.]] |
− | >à ¸Âà ¸°à ¸«à ¸² \inv a (mod m) à ¹Âà ¸¡à ¸·à ¹Âà ¸ gcd(a,m) = 1 | + | >จะหา \inv a (mod m) เมื่อ gcd(a,m) = 1 |
− | :à ¸Âà ¸°à ¸¡à ¸µ x,y à ¸Âà ¸µà ¹ ax + my = 1 | + | :จะมี x,y ที่ ax + my = 1 |
| mod m | | mod m |
| : (ax + my) mod m = 1 | | : (ax + my) mod m = 1 |
| : ax mod m = 1 | | : ax mod m = 1 |
− | à ¹Âà ¸¥à ¸·à ¸Âà ¸ mod p à ¹Âà ¸¡à ¸·à ¹Âà ¸ p à ¹Âà ¸Âà ¹Âà ¸Âà ¸Âà ¸³à ¸Âà ¸§à ¸Âà ¹Âà ¸Âà ¸Âà ¸²à ¸° à ¸Âà ¸°à ¹Âà ¸Âà ¹Âà ¸Âà ¸¸à ¸Âà ¹Â
a e {1,2,3,...,p-1} , gcd(a,p) = 1 ; [GFp(Galois Field)]
| + | เลือก mod p เมื่อ p เป็นจำนวนเฉพาะ จะได้ทุกๅ a e {1,2,3,...,p-1} , gcd(a,p) = 1 ; [GFp(Galois Field)] |
| | | |
− | ==à ¸Âà ¸²à ¸£à ¸Âà ¸£à ¸°à ¸Âà ¸²à ¸¢à ¸Âà ¸§à ¸²à ¸¡à ¸¥à ¸±à ¸ (Secret Sharing)== | + | ==การกระจายความลับ (Secret Sharing)== |
− | à ¸Âà ¹Âà ¸² polynomial f à ¸¡à ¸µ degree d à ¹Âà ¸£à ¸²à ¸ªà ¸²à ¸¡à ¸²à ¸£à ¸Âà ¹Âà ¸«à ¹ <math> (x_0,y_0),\ (x_1,y_1),\ ...\ ,\ (x_d,y_d)</math> à ¸Âà ¸°à ¸¡à ¸µ polynomial degree d à ¹Âà ¸Âà ¸µà ¸¢à ¸Âà ¸Âà ¸±à ¸§à ¹Âà ¸Âà ¸µà ¸¢à ¸§à ¸Âà ¸µà ¹Âà ¸Âà ¹Âà ¸²à ¸ à ¸Âà ¸¸à ¸Âà ¸Âà ¸¸à ¸Âà ¸Âà ¸±à ¸Âà ¸Âà ¸¥à ¹Âà ¸²à ¸§ à ¹Âà ¸¥à ¸° polynomial à ¸Âà ¸±à ¸Âà ¸Âà ¸¥à ¹Âà ¸²à ¸§à ¸«à ¸²à ¹Âà ¸Âà ¹Â
| + | ถ้า polynomial f มี degree d เราสามารถให้ <math> (x_0,y_0),\ (x_1,y_1),\ ...\ ,\ (x_d,y_d)</math> จะมี polynomial degree d เพียงตัวเดียวที่ผ่าน ทุกจุดดังกล่าว และ polynomial ดังกล่าวหาได้ |
| | | |
− | à ¸Âà ¹Âà ¸Âà ¸Âà ¸Âà ¸²à ¸£ key M à ¹Âà ¸«à ¹Âà ¸Âà ¸¥à ¸¸à ¹Âà ¸¡à ¸Âà ¸ n à ¸Âà ¸ à ¹Âà ¸«à ¹Âà ¸Âà ¸¸à ¸Âà ¹Âà ¸Âà ¸¥à ¸¸à ¹Âà ¸¡à ¸Âà ¸ < k à ¸Âà ¸ à ¹Âà ¸¡à ¹Âà ¸Âà ¸£à ¸²à ¸Âà ¸Âà ¹Âà ¸Âà ¸¡à ¸¹à ¸¥à ¹Âà ¸Âà ¸µà ¹Âà ¸¢à ¸§à ¸Âà ¸±à ¸ key à ¹Âà ¸¥à ¸¢
| + | ต้องการ key M ให้กลุ่มคน n คน ให้ทุกๆกลุ่มคน < k คน ไม่ทราบข้อมูลเกี่ยวกับ key เลย |
− | :à ¸Âà ¸¥à ¸¸à ¹Âà ¸¡à ¸Âà ¸ k à ¸Âà ¸Âà ¸«à ¸² key à ¹Âà ¸Âà ¹ | + | :กลุ่มคน k คนหา key ได้ |
| | | |
− | à ¸«à ¸² prime p > key à ¹Âà ¸¥à ¸° p - 1 > n à ¹Âà ¸¥à ¸·à ¸Âà ¸Â<math> a_{k-1},a_{k-2},...,a_1</math> à ¸Âà ¸²à ¸Âà ¹Âà ¸Âà ¸ { 1, 2, ... , p-1}
| + | หา prime p > key และ p - 1 > n เลือก<math> a_{k-1},a_{k-2},...,a_1</math> จากเซต { 1, 2, ... , p-1} |
| | | |
− | à ¹Âà ¸«à ¹ ak-1 à ¹Âà ¸¡à ¹Âà ¹Âà ¸Âà ¹Âà ¸²à ¸Âà ¸±à ¸ 0
| + | ให้ ak-1 ไม่เท่ากับ 0 |
| | | |
− | à ¹Âà ¸«à ¹ <math>f(x) = a_{k-1}\,x^{k-1} + a_{k-2}\,x^{k-2} +...+a_2\,x^2+a_1\,x + M</math>
| + | ให้ <math>f(x) = a_{k-1}\,x^{k-1} + a_{k-2}\,x^{k-2} +...+a_2\,x^2+a_1\,x + M</math> |
− | à ¹Âà ¸£à ¸²à ¸Âà ¸°à ¹Âà ¸¥à ¸·à ¸Âà ¸Âà ¸Âà ¸¸à ¸ <math>\ x_1,\ x_2,\ ...,\ x_n</math> à ¸Âà ¸µà ¹Âà ¹Âà ¸¡à ¹Âà ¸Âà ¹Âà ¸³à ¸Âà ¸±à ¸£à ¹Âà ¸¥à ¸°à ¹Âà ¸¡à ¹Âà ¹Âà ¸Âà ¹Âà ¸²à ¸Âà ¸±à ¸ 0 à ¹Âà ¸«à ¹ <math>(\ x_i,\ f(x_i))</math> à ¸Âà ¸±à ¸Âà ¸Âà ¸Âà ¸Âà ¸µà ¹ i
| + | เราจะเลือกจุด <math>\ x_1,\ x_2,\ ...,\ x_n</math> ที่ไม่ซ้ำกัรและไม่เท่ากับ 0 ให้ <math>(\ x_i,\ f(x_i))</math> กับคนที่ i |
บันทึกคำบรรยายวิชา 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 ที่
- Propostition
- ถ้า และ แล้ว
proof:
สังเกตว่าประโยค
นั้นไม่เป็นจริงเสมอไป
นิยาม: สำหรับถ้า จะเรียก 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 นั้นเอง
ต่อไปเราจะพิสูจน์ Claim 1.
Proof of Claim1: สมมุติให้มีจำนวนเต็ม ที่
- ที่
- จะได้
- หรือ
นั้นคือมีจำนวนเต็ม k ที่
จาก gcd(a,m ) =1 จะได้ว่า m ต้องหาร (i -j) ลงตัว
แต่ (i-j) มีค่าได้ตั้งแต่ 1 ถึง m-1 (ไม่เป็น 0 เนื่องจาก ซึ่งน้อยกว่า m
ซึ่งเป็นไปไม่ได้
แนวทางการ
Proof by Contradiction
จะพิสูจน์ (P) สมมุติ
:หรือ
(=>)
ต้องการพิสูจน์ a มี inverse modulo m แล้ว gcd(a,m) = 1
- Proof(Indirect):
ไม่มี mutiplicative inverse modulo m
- ให้
- หรือ
- พิจารณา
- ซึ่งจะเห็นว่า ผลลบของเทอมที่คูณ x เป็นจำนวนเต็ม คูณอยู่กับ x ซึ่งมากกว่าหนึ่งจึงเป็นไปไม่ได้ที่ เท่ากับ 1
ยูคลิด 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