Cryptography
คือศาสตร์แห่งการเข้ารหัสลับ กล่าวคือการแปลงข้อความปกติให้กลายเป็นข้อความลับซึ่งข้อความลับที่ว่านี้นอกจากคนที่ต้องการจะสนทนาด้วย คนอื่นจะไม่สามารถเข้าใจข้อความภายในได้ ซึ่ง Modern Cryptography จะใช้ทฤษฎีทางคณิตศาสตร์เข้ามาเสริมเพื่อให้ข้อความลับดูมีรูปแบบหรือ Pattern น้อยลง และยากต่อการถอดรหัสลับ ตัวอย่างของวิธีการทางคณิตศาสตร์ที่สามารถนำมาเข้ารหัสคือ Elliptic curve
Elliptic curve
ทางคณิตศาสตร์ มันคือเส้นโค้งพีชคณิต(algebraic curve) ที่ถูกกำหนดโดยสมการรูปแบบนี้ y²=x³+ax+b
ซึ่งเมื่อนำมาพล็อตกราฟและแทนค่าคงที่ a และ b แล้วหน้าตาของ Elliptic curve จะเป็นแบบนี้
ซึ่งคุณสมบัติอย่างแรกของเส้นโค้งนี้คือมันสมมาตรกันในระนาบแกน x และอย่างที่สองคือ เมื่อทำการเลือกจุดๆหนึ่งบนเส้นโค้งนี้เรียกจุดนี้ว่า g และนำค่าที่ได้จากสมการสมมติเป็นค่า G มาบวกกัน n ครั้ง หรือ n*G แล้วค่าที่ได้จากการคูณดังกล่าวนี้ เมื่อนำไปพล็อตกราฟ ปรากฏว่าเมื่อคูณกัน 2 ครั้ง ค่า 2*G เกิดจากค่าบนจุดตัดของเส้นตรงผ่านจุด g (tangent line) กับสมการ y²=x³+ax+b ซึ่งจะได้ค่าออกมาเป็น -2G แล้วทำการพลิกจุดตัดเป็นด้านตรงข้าม เมื่อมันสมมาตรกันในระนาบแกน x และแทน x เข้าไปในสมการจะทำให้ได้ค่า y สองค่าที่มีตัวเลขเหมือนกันแต่ต่างเครื่องหมาย เมื่อพลิกจุดจะได้เป็นที่จุดตัด x ใหม่ y มีค่า -2G และ 2G จากนั้นลากเส้นจากจุด g ผ่านจุด 2G และตัดกับเส้นโค้งของสมการจะได้ค่าจากจุดตัดนี้ คือ -3G และทำการพลิกจุดตัดเป็นด้านตรงข้าง จากนั้นลากเส้นจากจุด g ผ่านจุด 3G ไปเรื่อยๆ จนทำให้กราฟนี้เมื่อลากจากจุด g ไปจุด nG จะได้ค่าที่จุดตัด x ใหม่ y มีค่า –nG และ nG
เมื่อนำค่าของ nG มาพล็อตกราฟ จะได้กราฟที่มีจุดในรูปแบบที่เรียกได้ว่าเป็นการสุ่มตัวเลขเลยทีเดียว
และเมื่อมันเหมือนกับการสุ่มตัวเลข ถ้าเราสุ่มค่า G นึงมาแล้วถามว่า ที่จุดใดจุดหนึ่งนี้ ค่า n จาก nG มีค่าเท่าใด ถ้าสมการ y²=x³+ax+b ถูกกำหนดขอบเขตน้อย เราจะสามารถสุ่ม n ได้รวดเร็ว แต่ถ้าสมการมีขอบเขตที่ใหญ่พอ ค่า n อาจจะเป็นหลักสิบหรือหลักพันล้านเลยทีเดียว และคุณสมบัติของ Elliptic curve สามารถพลิกได้ เช่น สุ่มค่า G มาแล้วถามใหม่ว่า ที่จุดใดจุดหนึ่งนี้ ค่า a และ b จาก abG มีค่าเท่าใด ซึ่งจะทำให้การหานั้นเป็นไปได้ยากมากขึ้น
ทำให้ตัว Elliptic curve เป็นหนึ่งในวิธีการทางคณิตศาสตร์ที่สามารถนำมาใช้เป็นตัวช่วยในการเข้ารหัสลับได้นั่นเอง
Next part: https://medium.com/@inkstar0000/boolean-algebra-6cf3aeb5476c