Math

แนะนำเพื่อนใหม่

posted on 30 Aug 2008 21:48 by natnaja  in Math

              ก่อนอื่นที่เราจะเริ่มไปเข้ารหัสและก็ถอดรหัส  เราคงจะต้องทำความรู้จักกับเพื่อนใหม่กันก่อนนะคะเพื่อนใหม่ของเราชื่อ "modulo" ค่ะ  modulo หรือ mod ก็คือการหารเอาเศษนั่นเองค่ะ  ทำหรับบางท่านที่เรียนมาทางคอมฯ คงจะรู้จักเพื่อนคนนี้กันดีอยู่แล้ว 

              ยกตัวอย่างเช่น   10 mod 3    ก็คือการเอา 3  ไปหาร 10  เหลือเศษเท่าไหร่นั่นคือคำตอบค่ะ   อย่างสมัยตอนเราเรียนประถม(รู้สึกเหมือนเพิ่งผ่านมาไม่กี่สิบปีเองใช่ม้า...อิอิ)

         10 หาร 3  จะเท่ากับ  3  เศษ  1  ใช่มั้ยค่ะ      ดังนั้น  10  mod  3  =  1  ค่ะ  แค่นี้เอง ง่ายใช่ม่ะ   

         8   mod  4   ก็คือ  8  หาร  4  ก็จะเท่ากับ 2 นั่นคือไม่มีเศษใช่มั้ยคะ  ดังนั้น  8 mod 4 = 0  ค่ะ

       หรือถ้าเขียนในรูปแบบทางคณิตศาสตร์ก็คือ  10 = 3(3) + 1     และ    8 = 4(2) + 0     จะเห็นว่าคำตอบหรือเศษของมัน ก็คือตัวที่เอามาบวกทีหลังนั่นเองค่ะ

            งั้นขอทดสอบความเข้าใจหน่อยนะคะ.....ลองทายดูซิว่า   -13 mod  5  =   เท่าไหร่เอ่ย ???? 

        อาจจะดูวิชาการไปสักหน่อยแต่ก็เป็นวิชาการที่เป็นรูปธรรมนะ  หลายคนอาจจะสงสัยว่า เรื่องราวของรหัสลับ มันไปเกี่ยวกะ math ตรงไหน แต่เกี่ยวเต็มๆเลยหล่ะ 

          การศึกษาเรื่องเกี่ยวกับรหัสลับหรือ "Cryphography" เป็นเรื่องเรื่งที่น่าสนใจไม่น้อย และนี่คือหัวข้อในการทำสัมมนาของเรานั่นเอง...อิอิ โดย Cryptography นี้จะมีเนื้อหาส่วนใหญ่เกี่ยวกับ Number theory เป็นส่วนใหญ่ และมีเนื้อหาอื่นๆเพื่อช่วยในการพิสูจน์ และใช้ประกอบเล็กน้อย เช่น Methoed of Proof , Abstact Algebra , Linear Algebra ช่วยๆเป็นหนูทดลองกันหน่อยนะคะ อาจารย์เคยบอกว่าถ้าจะเรียนคณิตศาสตร์ให้ดี ต้องสามารถอธิบายให้คนอื่นฟังได้ และรู้เรื่องด้วย ถ้าสงสัยหรือผิดพลาดตรงไหนก็ช่วยคอมเม้นได้นะคะ จะเป็นพระคุณอย่าสูงส่งลิบลิ้ว ที่จะทำให้สัมมนาชิ้นนี้ประสบความสำเร็จ

           เข้าเรื่องกันเลยดีก่าถ้าพูดถึงรหัสลับ ลองนึกดูง่ายๆอย่างในการทหาร จำเป็นจะต้องมีการติดต่อสื่อสารกันผ่านช่องสัญญาณ แต่จะติดต่อกันอย่างไรเพื่อไม่ให้ฝ่ายตรงข้ามล่วงรู้ความลับของเราได้ โดยช่องสัญญาณที่ว่านี้อาจจะเป็น ทางโทรศัพท์ , computer network  และอีกมากมาย ก็เหมือนๆกับที่เรามีภาษาที่เข้าใจกันเองในกลุ่มเพื่อน...แบบว่าเรารู้กันง่ะ 

             โดยในที่นี้เราจะเรียกข้อความที่เราต้องการส่งให้อีกฝ่ายว่า "plaintext" เมื่อเรามีข้อขวามที่ต้องการส่งแล้ว  เราจะต้องทำการแปลงข้อความดังกล่าวให้เป็นรหัสซึ่งวิธีการดังกล่าวเรียกว่า "การเข้ารหัสหรือ encryption"   และเรียกข้อความที่ถูกเข้ารหัสแล้วว่า "ciphertext"   โดยจะมี key ที่ได้ทำการตกลงกันไว้ล่วงหน้าเพื่อใช้ในการเข้าหรัสและถอดรหัส  ซึ่งกระบวนการถอดรหัสจะถูกเรียกว่า "decryption" ซึ่งจะทำการถอดรหัสจาก ciphertext ให้เป็น plaintext

             ดันนั้นการที่เราจะส่งข้อความได้ถูกต้องและเข้าใจตรงกันนั้นจำเป็นอย่างยิ่งที่  encryption function และ decryption function จะต้องเป็น injective function หรือ เป็นฟังก์ชั่นแบบหนึ่งต่อหนึ่งนั่นเอง   และที่สำคัญจะเห็นว่า ทั้งสองฟังก์ชั่นดังกล่าวเป็น inverse ของกันและกัน      

             และนี่คือพื้นฐานคร่าวๆเกี่ยวกับ Cryptography แล้วเอาไว้ entry หน้าจะพูดถึง Classical Cryptography นั่นก็คือ วิธีการสร้างรหัสลับแบบต่างๆที่เป็นที่นิยมใช้กัน

เช่น Shift Cipher , sunstitution Cipher , Affine Cipher ,Vigenere Cipher , Hill Cipher เป็นต้น

แล้วมาลองสร้างรหัสลับกันนะคะ