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 = เท่าไหร่เอ่ย ????
posted on 29 Aug 2008 14:57 by natnaja in Math
อาจจะดูวิชาการไปสักหน่อยแต่ก็เป็นวิชาการที่เป็นรูปธรรมนะ หลายคนอาจจะสงสัยว่า เรื่องราวของรหัสลับ มันไปเกี่ยวกะ 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 เป็นต้น
แล้วมาลองสร้างรหัสลับกันนะคะ