ควอนตัมคอมพิวเตอร์ FAQ (บทความแปล)

พอดีได้ไปเจอบทความมาอันหนึ่งเรื่อง The Quantum Computer FAQ เห็นว่าน่าสนใจดี อ่านง่าย เหมาะกับผู้สนใจควอนตัมคอมพิวเตอร์สายชาวบ้านอย่างผม เลยอยากจะแปลบทความเป็นภาษาไทย ไว้อ่านเองด้วย ไว้เผื่อแผ่ผู้สนใจคนอื่นด้วย ได้ขออนุญาตเจ้าของบทความแล้ว ขอแปลลงบล็อกเอาไว้ เนื้อหาดังนี้

อะไรที่ “ไม่ใช่” ควอนตัมคอมพิวเตอร์?

  • ควอนตัมคอมพิวเตอร์ ไม่ใช่แค่คอมพิวเตอร์แบบคลาสสิกที่ทำงานเร็วมากๆ
  • ควอนตัมคอมพิวเตอร์ ไม่ได้คำนวณทุกคำตอบของปัญหาให้คุณได้พร้อมกันอย่าง parallel
  • ควอนตัมคอมพิวเตอร์ ไม่ใช่สิ่งที่สามารถแก้ปัญหายากๆ อย่าง NP-complete ได้ในพริบตา

 

ควอนตัมคอมพิวเตอร์ทำงานอย่างไร?

  • ควอนตัมคอมพิวเตอร์ ไม่ได้ทำงานด้วยบิต (ค่า 0 หรือ 1) แต่ทำงานด้วยควอนตัมบิตหรือคิวบิต (qubit) ซึ่งสามารถเป็นค่า 0 หรือ 1 ได้พร้อมกัน
    • ทั้งนี้คิวบิตจะไม่มีค่า จนกว่าจะถูกสังเกต (observe) ซึ่งมันอาจจะให้ค่า 0 ด้วยความน่าจะเป็น p และอาจจะให้ค่า 1 ด้วยความน่าจะเป็น 1-p
    • ความน่าจะเป็น p ที่ว่านี้ ถูกกำหนดจากสถานะควอนตัม (quantum state) เรียกว่าแอมปลิจูด (amplitude) ซึ่งเป็นจำนวนเชิงซ้อน และอาจเป็นค่าติดลบก็ได้
  • ด้วยอานิสงส์ของวิชากลศาสตร์ควอนตัม ทำให้เรารู้วิธีจัดการกับคิวบิตด้วย ตัวดำเนินการควอนตัม (quantum operator) อันได้แก่ ควอนตัมเกต (quantum gate) และ การวัด (measurement)
    • มองว่าควอนตัมเกตคือ การแปลงพีชคณิตเชิงเส้น (linear algebra transform คือพวกการคูณเมตริกซ์) ด้วยรูปแบบที่กำหนดไว้จำนวนหนึ่ง
    • การวัดก็คือการสังเกตค่าของคิวบิต ซึ่งเมื่อวัดแล้วจะทำให้คิวบิตมีค่าเป็น 0 หรือ 1 เท่านั้น และไม่อยู่ในสถานะ superposition อีกต่อไป
  • การเอาตัวดำเนินการควอนตัมมาทำงานต่อๆ กัน เรียกว่า อัลกอริทึมควอนตัม (quantum algorithm) หรืออันที่จริงควรจะเรียกว่า วงจรควอนตัม (quantum circuit) มากกว่า
  • การทำงานของอัลกอริทึมควอนตัม จริงๆ แล้วก็คือ กระบวนการปรับค่าแอมปลิจูดหรือความน่าจะเป็นเชิงซ้อนของคิวบิตในระบบ

 

ควอนตัมคอมพิวเตอร์ทำงานเร็วกว่าคอมพิวเตอร์ทั่วไปขนาดไหน?

  • อัลกอริทึมควอนตัม สามารถทำงาน “บางอย่าง” ได้เร็วกว่าอัลกอริทึมแบบคลาสสิก ในกรณีนั้นเราจะเรียกว่ามี quantum speed-up
  • ถ้า speed-up สูงมาก จนสามารถทำงานที่ปกติแทบจะเป็นไปไม่ได้บนคอมพิวเตอร์ธรรมดา แบบนั้นอาจเป็น exponential speed-up
  • ตัวอย่างของ exponential speed-up เช่น อัลกอริทึมของชอร์ (Shor’s algorithm) ถ้าพูดแบบง่ายๆ คือมันสามารถแยกแฟคเตอร์ตัวเลขได้ โดยเวลาที่ใช้จะผันตามขนาดข้อมูล (เช่น 2048 บิต) มากกว่าผันตามค่าของข้อมูล (เช่น 22048 สำหรับเลข 2048 บิต)

 

การเข้ารหัสแบบไหนบ้างที่จะถูกควอนตัมคอมพิวเตอร์ถอดได้?

  • อัลกอริทึมของชอร์ ไม่ได้เป็นแค่กลเม็ดทางคณิตศาสตร์ แต่มันสามารถเอามาใช้ถอดรหัส RSA ได้ ที่จริงแล้วคือการเข้ารหัสประเภท public-key ที่ใช้อยู่ทุกวันนี้จะโดนทั้งหมด (เช่น TLS, IPSec, SSH)
  • การเข้ารหัสแบบ Elliptic-Curve Crypto ก็โดนด้วยเหมือนกัน (เว้นแต่พวกที่ใช้ isogeny key exchange)
  • แต่ทว่า ทุกวันนี้ควอนตัมคอมพิวเตอร์ที่สามารถถอดรหัสดังกล่าวได้ยังไม่เกิดขึ้นจริง
  • ความจริงคือ ทุกวันนี้มีการทดลองใช้อัลกอริทึมของชอร์ในการแยกแฟคเตอร์ได้แค่เลข 15=3×5 เท่านั้นเอง คุณอาจเคยอ่านเจอว่ามีการแยกแฟคเตอร์ได้ถึงเลข 56,153 แล้ว แต่นั่นไม่ใช่อัลกอริทึมของชอร์ และออกจะเป็นการโกงด้วยซ้ำ

 

การเข้ารหัสแบบไหนที่จะไม่ได้รับผลกระทบ?

  • สำหรับอัลกอริทึมการเข้ารหัส AES ขนาด 128 บิต หากพยายามถอดด้วยควอนตัมคอมพิวเตอร์ จะเหลือความแข็งแรงเพียง 64 บิตเท่านั้น ทั้งนี้ด้วยอัลกอริทึมการค้นหาของโกรเวอร์ (Grover’s search algorithm)
  • ไม่เพียงแต่ AES แต่ควอนตัมคอมพิวเตอร์จะทำให้รหัสสมมาตรใดๆ ก็ตาม, hash function หรือ message authentication code (อย่างเช่น Salsa20, BLAKE2, HMAC) มีความแข็งแรงลดลงไปครึ่งหนึ่ง
  • ดังนั้น ถ้าคุณต้องการ AES ความแข็งแรงขนาด 128 บิตเท่าเดิมบนโลกที่มีควอนตัมคอมพิวเตอร์ คุณต้องขยับไปใช้คีย์ 256 บิต

 

การเข้ารหัสหลังยุคควอนตัมคืออะไร?

  • การเข้ารหัสหลังยุคควอนตัม (Post-quantum) คืออัลกอริทึมการเข้ารหัสที่ถูกออกแบบมาเพื่อให้ปลอดภัย-ทนทานต่อการถูกถอดด้วยควอนตัมคอมพิวเตอร์
  • มีความพยายามที่จะให้อัลกอริทึมการเข้ารหัสหลังยุคควอนตัมมาแทนที่อัลกอริทึมการเข้ารหัสที่ใช้กันอยู่ทุกวันนี้อย่าง RSA, Elliptic-Curve และ Diffie-Hellman ทั้งหมด
  • NSA แนะนำให้ “เปลี่ยนผ่านสู่อัลกอริทึมที่ทนทานต่อควอนตัมคอมพิวเตอร์ในอนาคต” เพื่อการนี้ NIST จึงจัดการแข่งขันเพื่อสรรหาอัลกอริทึมหลังยุคควอนตัมซึ่งดำเนินอยู่ในขณะที่เขียนบทความนี้อยู่
  • ทุกวันนี้มีอัลกอริทึมอยู่สี่แบบ ที่ดูแล้วน่าจะไปได้ดีหลังยุคควอนตัม

 

เมื่อไหร่จะมีควอนตัมคอมพิวเตอร์วางขาย?

  • บางคนก็ว่าควอนตัมคอมพิวเตอร์จะเกิดขึ้นได้จริงในอีก 5 ปี บางคนก็ว่าไม่มีทางเป็นไปได้ เอาจริงๆ คือ ไม่มีใครรู้หรอก

 

ทำไมควอนตัมคอมพิวเตอร์ถึงได้สร้างยากนักหนา?

  • ควอนตัมคอมพิวเตอร์สร้างได้ยากตรงที่ต้องพยายามรักษาสถานะของคิวบิตให้เสถียรและไม่มีสิ่งผิดพลาด
  • เราพอมีเทคนิคในการจัดการกับสิ่งผิดพลาดในคิวบิตอยู่บ้าง แต่การทำอย่างนั้นต้องเพิ่มคิวบิตเข้าไปอีกหลายตัว ซึ่งทำให้ยิ่งยุ่งยากขึ้นไปอีก
  • ทุกวันนี้มีนักวิจัยหลายกลุ่มพยายามสร้างควอนตัมคอมพิวเตอร์ด้วยวิธีต่างๆ ความสำเร็จล่าสุดคือทำระบบที่เสถียรได้โดยมีคิวบิต 9 ตัว
  • แต่จากการประมาณการทุกวันนี้ คาดว่าถ้าต้องการถอดรหัสอย่าง RSA จริงๆ จำเป็นต้องใช้คิวบิตหลักล้านตัว

 

แล้ว D-Wave ล่ะ?

  • บริษัท D-Wave กล่าวอ้างว่าได้สร้างควอนตัมคอมพิวเตอร์ แต่นั่นไม่ใช่ควอนตัมคอมพิวเตอร์อย่างเต็มที่ ถึงแม้ว่ามันจะทำงานด้วยคิวบิต แต่มันไม่สามารถทำงานควอนตัมอัลกอริทึมใดๆ ที่เป็นประโยชน์ต่องานเข้ารหัสได้เลย
  • โดยเฉพาะอย่างยิ่ง เครื่องจักร D-Wave ไม่สามารถรันอัลกอริทึมของชอร์ได้ มันจึงไม่สามารถถอดรหัสอะไรได้
  • ที่จริงแล้ว ยังไม่มีหลักฐานเลยด้วยซ้ำว่าเครื่องจักร D-Wave สามารถทำงานได้มีประสิทธิภาพกว่าคอมพิวเตอร์แบบคลาสสิก

 

อยากจะลองเล่นควอนตัมคอมพิวเตอร์ดูบ้าง ทำไง?

  • มีโปรแกรมจำลองควอนตัมคอมพิวเตอร์ให้ลองเล่นอยู่ แต่การทำงานเบื้องหลังของมันก็เป็นคลาสสิกคอมพิวเตอร์ธรรมดานั่นแหละ ดังนั้นมันจึงมีข้อจำกัดด้านจำนวนของคิวบิตที่มีให้เล่น
  • หรือคุณสามารถลองใช้วงจรควอนตัมขนาด 5 คิวบิตของจริงดูได้ อันนี้ต้องขอบคุณแพลตฟอร์มควอนตัมคอมพิวเตอร์ของ IBM

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: