เกรินนำ
ในยุคปัจจุบันที่เป็นโลกของการทำธุรกรรมเกือบทุกอย่างผ่านอินเตอร์เน็ต ไม่ว่าเป็น การจ่ายบิล การซื้อของ หรือ สื่อโซเชียลต่างๆ

สิ่งที่เราต้องทำคือ การสร้างฐานข้อมูลส่วนตัวของเรา ซึ่งสิ่งแรกที่เราต้องสร้างคือ รหัส สำหรับล็อกอิน ซึ่งรหัสนี้เป็นของส่วนตัวสำหรับเราคนเดียว บางเวปนั้นอาจจะให้เราสร้างรหัสที่เกิดจากการประสมตัวอักษรกับตัวเลขอย่างน้อยก็ 4 หลัก เพื่อความปลอดภัย คำถามคือเพื่อความปลอดภัยจากใคร….. ก็ปลอดภัยจากบุคคลอื่นที่ไม่ใช่เราหรือเวปนั้นเอง เรียกว่า พวกแฮกเกอร์ ซึ่งหากได้รหัสไป เขาก็สามารถเขาไปเป็นเราและทำธุรกรรมแทนเราทุกอย่างได้ ดังนั้นการปกป้องรหัสนั้นสำคัญมากๆ
นอกจากการเข้ารหัสเพื่อปกป้องข้อมูลส่วนตัวบนโลกอินเตอร์เน็ตแล้วการสร้างรหัสเพื่อปกป้องข้อมูลลับ เช่น ข้อมูลบางอย่างของรัฐบาล ข้อมูลทางการทหาร ที่สำคัญรหัสในการปลดล๊อกอาวุธต่างๆเหมือนในภาพยนต์ประมาณนั้น

ปัจจุบันมีการสร้างวิธีในการเข้ารหัสข้อมูลที่ซับซ้อนเพิ่มขึ้นเรื่อยๆ เช่น การอาศัยสมบัติของจำนวนเฉพาะ (prime number) อย่างไรก็ตามถึงการเข้ารหัสจะมีความยุ่งยากมากขึ้น แต่ด้วยประสิทธิภาพของคอมพิวเตอร์ที่เพิ่มขึ้นตลอดจึงเป็นไปได้ว่าการปลดล๊อกรหัสของแฮกเกอร์ก็มีโอกาศเป็นไปได้เสมอ
พื้นฐานการเข้ารหัส
หัวใจของการเข้ารหัสคือ เราต้องการให้สื่อสารนั้นเป็นความลับระหว่างต้น(Sender)ทางและปลายทาง(Recipient) ดังนั้นข้อความที่เราต้องการส่ง(Plaintext)ไปยังปลายทางต้องได้รับการเข้ารหัส(Encrypt) หน้าตาข้อความเปลี่ยนไปจากเดิม(Ciphertext) เมื่อข้อความไปถึงปลายทางก็ทำการถอดรหัส(Decrypt) ก็จะได้ข้อความเดิมกลับ(Plaintext)มา ดังรูปแสดง

ข้อยกตัวอย่างของการเข้ารหัสข้อความที่มีมาแต่สมัยของ จูเลียส ซีซาร์ (Julius Caesar) ประมาณ 2000 ปีที่แล้ว เป็นการเข้ารหัสที่ไม่ยากต่อการทำความเข้าใจ เงื่อนไขคือการเลื่อนตำแหน่งตัวอักษรไป k ตำแหน่ง ดังรูปแสดงนั้น k=3 ทำให้ลำดับของตัวอักษรจาก ABCDEFGHIJKLMNOPQRSTUVWXYZ ไปเป็น DEFGHIJKLMNOPQRSTUVWXYZABC หากเราต้องการส่งข้อความ SECRET เมื่อเข้ารหัสด้วยเงื่อนไขข้างต้นข้อความจะเป็น VHFUHW เมื่อถึงปลายทางทำการเลื่อนลำดับอักษรกลับก็จะได้ข้อความเดิมกลับมา

แน่นอนว่า รหัส นั้นต้องการมีการกระจายกันระหว่างต้นทางและปลายทางผ่านช่องทางสื่อสารปกติ (communication channel) หากมีบุคคลที่สาม (Interceptor) เดารหัสหรือดักเอารหัสจากนั้นสร้างรหัสขึ้นมาอีกชุด
ดังนั้นสิ่งที่บุคคลที่สามทำได้คือ ทำการถอดข้อความและทำการเข้ารหัสเหมือนเดิม จากนั้นก็ส่งไปยังปลายทาง สิ่งที่เกิดขึ้นคือ ผู้ส่งและผู้รับนั้นไม่สามารถรับรู้ได้เลยว่าข้อความที่พวกเขาสื่อสารกันนั้นโดนดักถอดรหัสไปแล้วเพราะไม่มีอะไรผิดปกติไปจากกรณีที่ไม่มีการดักฟังเลย
การเข้าระหัสแบบ one-time pad
มีการพัฒนาการเข้ารหัสที่ยุ่งยากขึ้นที่เรียกว่า one-time pad ซึ่งทำการสร้างรหัสแบบสุ่ม เช่น เราให้ค่าตัวเลขตามลำดับตัวอักษรทั้งหมด 26 ตัว เช่น A=1,B=2,C=3,….,Z=26 หากเราต้องการส่งข้อความ HELLO ไปยังปลายทาง เราก็ต้องทำการสร้างรหัสสำหรับกรณีนี้เรามี 5 ตัวอักษร เราก็ต้องสร้างรหัสในจำนวนเท่ากันโดยการสุ่มตัวอักษรในกรณีนี้เป็น XMCKL
ขั้นตอนเข้ารหัส
7(H) 4(E) 11(L) 11(L) 14(0) ข้อความ
+ 23(X) 12(M) 2(C) 10(K) 11(L) รหัส
= 30 16 13 21 25 ข้อความ+รหัส
= 4 16 13 21 25 mod 26 (ตัวเลขไหนเกิน 26 ก็ลบออก)
4(E) 16(Q) 13(N) 21(V) 25(Z)
ดังนั้นข้อความที่ส่งไปคือ EQNVZ
ขั้นตอนถอดรหัส
4(E) 16(Q) 13(N) 21(V) 25(Z) ข้อความ+รหัส
– 23(X) 12(M) 2(C) 10(K) 11(L) รหัส
=-19 4 11 11 14 ข้อความ
= 7 4 11 11 14 mod 26 (ตัวเลขไหนติดลบก็บวกด้วย 26)
7(H) 4(E) 11(L) 11(L) 14(0) ข้อความ
ท้ายสุดเราก็จะได้คำว่า HELLO กลับมา
ประเด็นคือ 1 ตัวอักษรนั้นเราสามารถสุ่มตัวอักษรมาเข้ารหัสได้ 26 แบบ ดังนั้นสำหรับการข้อความ 5 ตัวอักษร เราสามารถสร้างหรัสได้ทั้งหมด 26*26*26*26*26=11,881,376 แบบ(pad) หากต้นทางตกลงกับปลายทางว่าครั้งแรกของการส่งจะใช่รหัสแบบอันไหน ต่อไปอันไหน และต่อไปอันไหน จะเห็นได้ว่ายากมากในการคาดเดา อย่างไรก็ดีรหัสนั้นต้องมีการแชร์กันระหว่างต้นทางและปลายทาง หากโดนดักเอาลำดับแบบสุ่มทั้งชุดไปก็จบ
สำหรับคนที่ชอลเลขฐาน 2 เราสามารถใช้ บิต 0 และ 1 ในการแสดงข้อความของเราได้ และก็ใช้สร้างรหัสขึ้นมาได้ เช่นตัวอย่างด้านล่างผ่านการดำเนินการแบบ XOR หาก 2 บิตเหมือนกันเป็น 0 หากต่างเป็น 1
ขั้นตอนการเข้ารหัส
11010011100001 ข้อความ
XOR 00101011101011 รหัส(สร้างขึ้นมาแบบสุ่ม)
11111000001010 ข้อความ+รหัส
ขั้นตอนการถอดรหัส
11111000001010 ข้อความ+รหัส
XOR 00101011101011 รหัส
11010011100001 ข้อความ
ประเด็นสำคัญคือ หากอลิสต้องการสื่อสารลับๆกับกลุ่มคน แสดงว่าทุกคนก็ต้องมีกุญแจชุดเดี่ยวกันหรือต้องมีการกระจายกุญให้กับทุกคนในกลุ่ม ซึ่งมีความเสี่ยงสูงครับที่จะโดนขโมยกุญแจไประหว่างการแชร์

การเข้ารหัสแบบ RSA
เพื่อการปัญหาการกระจายกุญแจแบบเดียวกันให้กับทุกคนที่ต้องการสื่อสารด้วย จึงได้มีการคิดค้นวิธีสร้างกุญแจแบบใหม่ขึ้นมาเรียกว่า วิธี RSA ย่อมาจากชื่อคน 3 คน ได้แก่ Ron Rivest, Adi Shamir และ Leonard Adleman การเข้ารหัสนั้นอาศัยสมบัติของจำนวนเฉพาะ (prime number) ซึ่งจะมีกุญแจสาธารณะ(public key) ที่ทุกคนมีอยู่เพื่อใช้ในการเข้ารหัสข้อมูล และกุญแจอีกชุดที่เรียกว่ากุญแจส่วนตัว (private key) ซึ่งเฉพาะคนรับเท่านั้นที่รู้
หมายความว่าใครที่ต้องการสื่อสารแบบลับๆกับอลิสก็เอากุญแจสาธารณะเข้ารหัส(เหมือนเอาแม่กุญแจล๊อกกล่อง) แล้วส่งให้อลิส ซึ่งอลิศคนเดี่ยวที่มีกุญแจส่วนตัวเอาไวถอดรหัสป่ะครับ (มีลูกกุญแจคนเดียว)
สมมติว่าอลิสต้องการส่งข้อความ “B” ให้กับบ๊อบแต่เพื่อให้เป็นความลับเธอต้องเข้ารหัสแต่จะเป็นแบบ RSA ดังนั้นอลิสจะมีคู่ของตัวเลขในที่นี้คือ (5,14) ซึ่งในที่นี้คือกุญแจสาธารณะ
การเข้ารหัส
ขั้นที่ 1 อลิสเปลี่ยนข้อความให้เป็นตัวเลข ซึ่งในที่นี้ง่ายเลยคือ 2
ขั้นที่ 2 นำเลข 2 มายกกำลัง 5 ซึ่งจะได้ 32
ขั้นที่ 3 นำเลข 32 ไป mod กับ 14 หรือเขียนเป็น 32(mod 14) เราพบว่า 2×14 ได้ 28 ดังนั้นยังเหลืออีก 4 ( 2×14+4=32)
ขั้นที่ 4 ตัวเลข 4 คือข้อความที่โดนเข้ารหัสแล้วซึ่งแปลงเป็นตัวอักษรได้เป็น D และจะส่งไปให้บ๊อบ
ขั้นต่อไปคือบ๊อบต้องถอดรหัสข้อความที่อลิสส่งมาให้ เขาจะมีตัวเลขอีกคู่คือ (11,14) ซึ่งเขารู้คนเดี่ยว
การถอดรหัส
ขั้นที่ 1 บ๊อบนำอักษร D มาแปลงเป็นตัวเลขซึ่งคือ 4
ขั้นที่ 2 นำเลข 4 มายกกำลัง 11 ซึ่งจะได้ 4194304
ขั้นที่ 3 นำเลข 4194304 ไป mod กับ 14 หรือเขียนเป็น 4194304(mod 14) และเราพบว่าเหลือตัวเลข 2
ขั้นที่ 4 ตัวเลข 2 ก็คือตัวอักษร B ที่อลิสส่งมานั้นเอง
ตอนนี้คนอ่านคงมีคำถามว่าแล้วเขาทั้งคู่เสกชุดตัวเลขที่ใช้ในการเข้ารหัสมาจากไหน
ขั้นตอนการสร้างรหัส
ขั้นที่ 1 เลขคู่จำนวนเฉพาะ ซึ่งในที่นี้คือ p=2 และ q=7 (จริงเลือกคู่อื่นก็ได้ และต้องโตๆ แต่เพื่อให้ง่ายจึงเอาคู่นี้)
ขั้นที่ 2 นำมาคูณกัน N=pq=(2)(7)=14 ซึ่งก็คือตัวเลขที่เราไว้ใช้ mod นั้นเอง
ขั้นที่ 3 ทำการเขียนตัวเลขที่หมดที่มีค่าระหว่าง 1 และ 14 ซึ่งได้แก่
1 2 3 4 5 6 7 8 9 10 11 12 13 14
ขั้นที่ 4 ทำการตัดตัวเลขที่ไม่มีตัวประกอบร่วมกับ 14 (=2×7) ได้แก่ เลขคู่ทั้งหมด และเลข 7
1 2 3 4 5 6 7 8 9 10 11 12 13 14—>1 3 5 9 11 13
ขั้นที่ 5 จากขั้นที่แล้วเรามีตัวเลขเหลือ 6 ตัว ซึ่งเรียกตัวเลขทั้งหมดนั้นว่า จำนวนเฉพาะสัมพัทธ์ (coprime number) กับ 14
ตอนนี้เรานิยาม W(N)=(p-1)(q-1)=6
ขั้นที่ 6 เลือกตัวเลขซึ่งให้เป็น e โดยมี
เงื่อนไขที่ 1 ว่า 1<e<W(N) -> 1<e<6
เงื่อนไขที่ 2 e ต้องเป็นจำนวนเฉพาะสัมพัทธ์ของ N=14 และ W(N)=6
จากเงื่อนไขที่ 1 จะเหลือตัวเลข 2 3 4 5 และจากเงื่อนไขที่ 2 เราตัดเลข 2 4 ออกไปก่อนได้เลย และแน่นอนว่า 3 นั้นไม่ได้เพราะมีตัวประกอบร่วมกับ 6 ดังนั้นเหลือเลขเดี่ยวคือ 5
ตอนนี้เราได้คู่ตัวเลขที่จะใช้ในการเข้ารหัสล่ะ คือ (e,N)=(5,14) หรือกุญแจสาธารณะ
ขั้นที่ 7 เราเลือกเลข d ที่ทำให้ de (mod W(N))=1 หรือ d=(kW(N)+1)/e สำหรับจำนวนเต็ม k บางค่า ในตัวอย่างนี้ d=(k6+1)/5 หากเราเลือก k=9 เราจะได้ d=11 (จริงๆยังมีค่าอื่นๆอีก)
ดังนั้นตอนนี้เรามีคู่ตัวเลข (d,N)=(11,14) ซึ่งเป็นกุญแจส่วนตัวของบ๊อบนั้นเอง
สำหรับคนที่ต้องการถอดหรัสจะรู้แค่คู่ (e,N) หากเขาต้องการถอดรหัสเขาต้องรู้ d งี้เขามีทางคำนวณจาก e และ N มั้ย คำตอบคือ หากเขารู้ค่า N และ W(N) แน่นอนว่าเขาสามารถคำนวณหาค่า p และ q ได้ เพราะ W(N)=(p-1)(q-1) =pq-p-q+1 =N-(p+q)+1=N-(p+N/p)+1 ดังนั้นสมการนี้สามารถแก้หา p ได้และแน่นอนว่าเมื่อรู้ p เราก็รู้ q ด้วย ประเด็นคือเขาต้องการแยกส่วนจำนวนเฉพาะที่ประกอบกันขึ้นมาเป็น N=pq เพื่อใช้ในการคำนวณค่า W(N) สำครับ N ที่ไม่โตมากก็ยังพอที่จะทำและเดาได้ แต่หาก N โตมากๆ ปัญหาจะยากมากๆ ในการนั้งแยกตัวประกอบจำนวนเฉพาะ เช่น N=32 พบว่าประกอบไปด้วย 1 32, 2 16, 4 8 เป็นต้น (อันนี้ก็ยังไม่ยาก) แต่หาก N=266389664617004986624097978187739779643 ล่ะ
จากกราฟเราจะเห็นว่าเวลาที่จะใช้ในการแยกตัวประกอบนั้นเพิ่มตามจำนวนดิจิตของ N ในปัจจุบัน RSA มีความยาวอยู่ที่ 1024 ดิจิต หรือ 2048 ดิจิต
สำหรับ RSA นั้นเชื่อกันว่าหาก quantum computer มาถึง การแยกตัวประกอบที่เป็นจำนวนเฉพาะนั้นก็จะทำได้ไม่ยากอีกต่อไป
ทางออกสำหรับการมาของ quantum computer ของการเข้ารหัสแบบ RSA
ในเมื่อการมาของควอนตัมจะให้เกิดปัญหา เราก็ต้องเอาควอนตัมเข้าสู่ครับ เหมือนหนามยอกต้องเอาหนามบ่ง
ปัญหาดังกล่าวแก้ได้ด้วยการสร้างรหัสโดยอาศัยสมบัติอันประหลาดของกลศาสตร์
ควอนตัม
1) หลักความไม่แน่นอนของไฮเซนเบิร์ก (Heisenberg uncertainty principle)
2) สถานะควอนตัมไม่สามารถโคลนได้ (No-cloning theorem)
โมเดลต้นแบบของการสร้างรหัสควอนตัม คือ BB84 เสนอโดย Charles Bennett และ Gilles Brassard ในปี 1984 สิ่งที่เราจะนำมาใช่ในการสร้างรหัสควอนตัมคือ โฟตอนเดี่ยว(Single photon) ซึ่งเป็นอนุภาคควอนตัมของแสง สมบัติที่เราสนใจของโฟตอนในที่นี้คือ โพลาไรเซชัน (Polarisation) ซึ่งเลือก 2 เบสิส คือ
1 เบสิสปกติ(Rectangular basis) มีแนวดิ่ง(แทนด้วย 0)และแนวราบ (แทนด้วย 1)
2 เบสิสแทยง(Diagonal basis) แนวแทยงซ้าย (แทนด้วย 0) และแทยงขวา (แทนด้วย 1)
การวัดทิศของโพลาไรเซชันนั้นสามารถทำได้ส่งโฟตอนผ่านฟิลเตอร์ (Filter) ซึ่งมีอยู่ 2 แบบตามเบสิสตามแนวทิศของโพลาไรเซชัน
กรณีที่ 1 หากเราเลือกฟิลเตอร์ที่สอดคล้องกับทิศของโพลาไรเซชัน เราจะได้ผลของการวัดที่แน่นอน ตามรูปด้านล่าง เข้าทางซ้ายออกทางขวา
กรณีที่ 2 หากเราเลือกฟิลเตอรไม่สอดคล้องกับทิศของโพลาไรเซชัน เช่น
นั้นคือ มีโอกาศ 50% ที่จะได้แทยงซ้ายและ 50% ที่จะได้แทยงขวา อันนี้เป็นผลมาจากหลักความไม่แน่นอนของไฮเซนเบิร์ก หรือเราอาจมองได้ว่าเนื่องจากทิศโพลาไรเซชันของโฟตอนแนวดิ่งสามารถเขียนในรูปของสถานะซ้อนทับ (Superposition) ระหว่างทิศแทยงซ้ายและแทยงขวา
สำหรับกรณีนี้ก็มีโอกาศ 50% ที่จะได้แทยงซ้ายและ 50% ที่จะได้แทยงขวา เนื่องจากทิศโพลาไรเซชันของโฟตอนแนวราบสามารถเขียนในรูปของสถานะซ้อนทับ (Superposition) ระหว่างทิศแทยงซ้ายและแทยงขวา
สำหรับกรณีนี้ก็มีโอกาศ 50% ที่จะได้แนวราบและ 50% ที่จะได้แนวดิ่ง เนื่องจากทิศโพลาไรเซชันของโฟตอนแนวแทยงซ้ายสามารถเขียนในรูปของสถานะซ้อนทับ (Superposition) ระหว่างทิศแนวดิ่งและแนวราบ
สำหรับกรณีนี้ก็มีโอกาศ 50% ที่จะได้แนวราบและ 50% ที่จะได้แนวดิ่ง เนื่องจากทิศโพลาไรเซชันของโฟตอนแนวแทยงซ้ายสามารถเขียนในรูปของสถานะซ้อนทับ (Superposition) ระหว่างทิศแนวดิ่งและแนวราบ
กระบวนการสร้างรหัสควอนตัม สมมุติว่า ตอนนี้อลิสและบ๊อบต้องการสื่อสารกันอย่างเป็นความลับดังนั้นทั้งสองต้องสร้างรหัส วิธีการก็คืออลิสทำการส่งสายของโฟตอนเดี่ยวที่ไม่มีทิศของโพลาไรเซชันผ่านฟิลเตอร์ 4 แบบ โดยทำการเลือกชนิดของฟิลเตอร์แบบสุ่ม ส่งผลทำให้โฟตอนที่ออกมามีทิศโพลาไรเซชันแบบสุ่มแล้วส่งไปให้บ๊อบผ่านช่องทางควอนตัม (Quantum channel)
บ๊อบซึ่งไม่รู้ทิศโพราไลเซชันของแต่โฟตอนที่ส่งมาหรือไม่รู้เป็นเบสิสแบบไหน สิ่งที่บ๊อบทำได้คือ เลือกฟิลเตอร์ที่มี 2 แบบอย่างสุ่ม เพื่อทำการวัดทิศของโพลาไรเซชัน ดังรูปด้านล่าง ซึ่งมีทั้งตรงและไม่ตรง
หากบ๊อบเลือกฟิลเตอร์ผิด จะเกิดโอกาศ 50%/50% ในการที่จะได้โพราไลเซชันในแต่ละทิศสำหรับเบสิสใหม่ หากเลือกถูกก็จะได้ผลถูกต้อง 100% ดังอธิบายไปแล้วก่อนหน้านี้
เมื่อบ๊อบวัดเสร็จแล้ว ก็ทำการสื่อสารกับอลิสผ่านช่องทางสาธารณะ (Classical channel) เช่น โทรศัพย์ เพื่อบอกลำดับฟิลเตอร์ที่ใช่ในการวัดทิศของโพลาไรเซชัน(โดยไม่ได้บอกค่าบิตที่ได้) อลิสแค่บอกว่าฟิลเตอร์ไหนถูกต้อง เมื่อบอกหมดแล้วก็ทำการทิ้งค่าบิตที่เกิดจากการวัดที่ฟิลเตอร์ไม่ถูกต้อง แล้วเก็บค่าบิตที่ฟิลเตอร์ตรงกันไว้อย่างเดียว
ทั้งคู่จะแชร์ลำดับบิต 00111 ซึ่งจะถูกใช้เป็นรหัสในการสื่อสาร ลำดับบิตดังกล่าวสร้างขึ้นมาแบบสุ่ม ซึ่งนำไปใช้ในการเข้ารหัสแบบ one-time pad อย่างที่ได้อธิบายไปก่อนหน้านี้ (ปล ความยาวรหัสสามารถสร้างยาวได้เท่าที่ต้องการ)
หากตอนนี้ข้าวเกรียบ ต้องการรู้ว่าทั้งสองพูดคุยอะไรกัน จึงต้องทำการดักเอารหัสในขั้นตอนของการสร้างรหัส สถานะการณ์ของข้าวเกรียบก็ไม่ต่างจากบ๊อบเพราะต้องเลือกฟิลเตอร์แบบสุ่มเหมือนกันดังรูปด้านล่าง
จากนั้นข้าวเกรียบต้องสร้างโฟตอนทั้งชุดที่มีสถานะตามที่วัดได้แล้วส่งไปให้บ๊อบ ซึ่งบ๊อบจะทำการวัดทิศโฟตอนโพลาไรเซชันเหมือนเดิม
เราจะเห็นได้ว่าลำดับของรหัสนั้นเปลี่ยนไปจาก 00111 เป็น 00011 เป็นผลของการที่ข้าวเกรียบเข้ามาวัดทิศของโพลาไรเซชันซึ่งเลือกฟิลเตอร์ผิดส่งผลทำให้ทิศเปลี่ยนไปเมื่อถึงบ๊อบจึงทำให้ผลการวัดเปลี่ยนไปด้วย ทำให้ทั้งคู่รู้ทันทีว่ามีคนมาดักเอารหัส
เมื่ออลิสและบ๊อบรู้ว่ารหัสโดนดักไปแล้วทั้งคู่ก็แค่ทิ้งรหัสชุดนั้นไป แล้วไปสร้างใหม่ยังช่องทางควอนตัมอื่นแทน ข้าวเกรียบซึ่งดักเอารหัสทางช่องทางควอนตัมแต่ไม่สำเร็จ อาจจะพยายามในการดักฟังโทรศัพย์ระหว่างอลิสและบ๊อบแต่สิ่งที่จะได้คือแค่ลำดับของฟิลเตอร์แต่ไม่ได้ค่าบิต ดังนั้นไม่ว่าข้าวเกรียบจะดักเอารหัสช่องทางไหน ไม่ว่าจะเป็นช่องทางสาธารณะทั่วไป (Classical channel) หรือจะเป็นช่องทางควอนตัม (Quantum channel) ก็ไม่สามารถเอารหัสไปได้
การเข้าไปวัดทิศของโพลาไรเซชันของข้าวเกรียบนั้น เป็นการรบกวนระบบและยิ่งหากเลือกฟิลเตอร์ผิดจะทำให้ทิศของโพลาไรเซชันเปลี่ยนเบสิสไปจากเดิน อันเป็นผลของหลักความไม่แน่นอนของไฮเซนเบิร์ก (Heisenberg uncertainty principle) อันนี้สามารถมองได้จากตัวอย่างด้านล่าง
เราจะเห็นได้ว่า หากเรารู้ว่าทิศของโพลาไรเซชันในแบบเบสิสปกติแน่นอนว่าเป็นแนวดิ่ง เมื่อเราต้องการรู้ว่าทิศของโพลาไรเซชันในแนวแทยงนั้นเกิดความไม่แน่นอน 50/50 ดังรูป หรือเราไม่สามารถรู้ทิศของโพลาไรเซชันทั้งสอบเบสิสได้แน่นอนพร้อมกัน
คำถามคือ ก็ในเมื่อการวัดทำให้ทิศของโพลาไรเซชันเปลี่ยนไป ยังงี้ผมก็ก๊อปปี้ชุดของโฟตอนขึ้นมาอีกชุดสิครับ แล้วก็ส่งชุดจริงไปบ๊อบไป เราก็สามารถทำการวัดโดยไม่รบกวนกระบวนระหว่างอลิสกับบ๊อบแล้วนิครับ
คำตอบคือ เพราะว่าเราไม่สามารถสร้างชุดโฟตอนที่เหมือนกันกับชุดโฟตอน(ซึ่งสถานะของแต่ล่ะโฟตอนอยู่ในสภาวะซ้อนทับ)เริ่มต้นได้ครับตามทฤษฎีบท No-cloning
สรุปว่า หัวใจของการเข้ารหัสแบบควอนตัมนั้นอยู่ที่การสร้างรหัสที่สามารถตรวจสอบการเข้ามาของบุคคลที่ 3 หากสร้างระหัสสำเร็จก็นำไปเข้ารหัสข้อความแบบปกติ
นอกจากโมเดล BB84 แล้วยังมีแบบอื่นอีกคือ E91 เสนอโดย Artur Ekert ในปี 1991 ซึ่งอาศัยคุณสมบัอันแปลกประหลาดอีกอันหนึ่งที่เรียก entanglement ซึ่งโดยภาพรวมนั้นเหมือนกับ BB84 ซึ่งสามารถบอกได้ถึงการเข้าของบุคคลที่ 3
อย่างไรก็ดีงานวิจัยทางด้านนี้ก้าวหน้าไปมาก ผู้อ่านสามารถหาอ่านเพิ่มเติมได้เอง โดยใช้บริการอากู๋ บริการดียิ่งกว่า 7/11 อีก ฮาาาาาา
เราขอจบด้วยภาพ อลิสและบ๊อบ ในตำนาน ฮาาาาาาาาา ใครอ่านบทความเสร็จแล้วอยากออกกำลังกาย โทรเลยครับ ตามคำพูด Choose wisely live well
จบครับ
เรียบเรียง
สิขรินทร์ อยู่คง (QuTE Co-Founder)
วิทยาลัยเพื่อการค้นคว้าระดับรากฐาน (Institute for Fundamental Study: IF)
มหาวิทยาลัยนเรศวร
ผู้เขียนขอขอบคุณ ดร.เอกรัฐ พงษ์โอภาศ (QuTE Co-Founder) สำหรับคำชี้แนะในการเรียบเรียงบทความ