เหตุใดช่วงเวลาสำคัญในการเข้ารหัส?


191

สิ่งหนึ่งที่ทำให้ฉันเป็นนักเข้ารหัสไม่ใช่: ทำไมการใช้หมายเลขเฉพาะจึงสำคัญ? อะไรทำให้พวกเขาพิเศษในการเข้ารหัส?

ไม่มีใครมีคำอธิบายสั้นๆ ง่ายๆ ? (ฉันรู้ว่ามีไพรเมอร์มากมายและการใช้การเข้ารหัสเป็นคัมภีร์ แต่ตามที่กล่าวไว้: ฉันไม่ต้องการใช้อัลกอริทึมการเข้ารหัสลับของตัวเองและสิ่งที่ฉันพบทำให้สมองของฉันระเบิด - ไม่มี 10 หน้าสูตรคณิตศาสตร์ ได้โปรด :))

ขอบคุณสำหรับคำตอบทั้งหมด ฉันยอมรับสิ่งที่ทำให้แนวคิดที่แท้จริงชัดเจนที่สุดสำหรับฉัน


การสังเกตสองสามข้อ: 1. คนข้างล่างพูดถึงว่า "การแยกตัวประกอบเฉพาะของจำนวนมากใช้เวลานาน" ที่จริงแล้วสิ่งเดียวกันนั้นเป็นจริงสำหรับการแยกตัวประกอบใด ๆ สิ่งสำคัญคือจำนวนเต็มใด ๆ ! = 0 มีการแยกตัวประกอบเฉพาะเป็นผลคูณของจำนวนเฉพาะ (รวมถึง 1 ซึ่งมีการแยกย่อยของความยาว 0)
TT_

1
2. โปรดตรวจสอบคำอธิบายของฉันว่าเหตุใดช่วงเวลาสำคัญสำหรับฟังก์ชันแฮช: stackoverflow.com/questions/1145217/ ......มันเกี่ยวข้องกับคุณสมบัติของพหุนามกับค่าสัมประสิทธิ์ของเขตข้อมูล (ซึ่งอาจไม่ใช่คำอธิบายสั้น ๆ )
TT_

2
คำอธิบายสั้น ๆ a * b = 91ง่ายเกินไป→แก้ไข: ตอนนี้แก้ปัญหา: 13 * 7 = x. สมการที่สองนั้นเร็วกว่ามากในการแก้ (สำหรับมนุษย์หรือคอมพิวเตอร์)
Dem Pilafian

คำตอบ:


204

คำอธิบายพื้นฐานและทั่วไปที่สุด: การเข้ารหัสเป็นทฤษฎีเกี่ยวกับจำนวนทั้งหมดและจำนวนเต็มทั้งหมด (ยกเว้น 0 และ 1) ประกอบด้วยจำนวนเฉพาะดังนั้นคุณจัดการกับจำนวนเฉพาะในทฤษฎีจำนวนมาก

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


7
ขณะที่เราป้อนยุคของควอนตัมคอมพิวเตอร์ดูเหมือนว่าเหมาะสมที่จะทราบว่าตัวประกอบของจำนวนเฉพาะการใช้คอมพิวเตอร์ควอนตัมที่สามารถทำได้ในเวลาพหุนาม usiong แคระแกร็นของอัลกอริทึม en.wikipedia.org/wiki/Shor%27s_algorithm เป็นไปได้ว่าเครื่องคอมพิวเตอร์ที่มีอยู่แล้วซึ่งสามารถ ถอดรหัสการเข้ารหัสคีย์สาธารณะเช่น RSA
stujo

16
@stujo: คุณประเมินสถานะการคำนวณควอนตัมอย่างหนาแน่น ในความเป็นจริงแน่นอนว่าไม่มีคอมพิวเตอร์ดังกล่าวอยู่ จำนวนมากที่สุดที่ได้รับจากการใช้อัลกอริทึมของชอร์และการวิจัยอันล้ำสมัยในฮาร์ดแวร์ควอนตัมคือ 21 นั่นไม่ใช่ 21 บิต แต่จำนวน 21 ปัจจัยสำคัญ 3 และ 7
Michael Borgwardt

1
ฉันไม่แน่ใจว่าข้อมูลใดเป็นปัจจุบันมันเป็นเรื่องยากที่จะรับข้อมูลเกี่ยวกับงานล่าสุดฉันเชื่อว่ามันกลับมาในปี 2012 บทความนี้มาจากปี 2014 ( m.phys.org/news/2014-11-largest-factored- quantum-device.html ) เราเคยเห็นข้อมูลสาธารณะใด ๆ จากปี 2016 หรือไม่? ไม่แยกสิ่งที่อาจจัดประเภท แม้ว่าจะไม่สามารถเรียกใช้อัลกอริทึม Shors ได้ แต่ D-Wave นั้นมีมากกว่า 1,000 qbits
stujo

1
@stujo: หลักการเดียวกันนี้จะใช้บังคับเมื่อเราทุกคนใช้ Quantum CPUs เนื่องจากจำนวนที่เพิ่มขึ้นเรื่อย ๆ ทั้งหมดเกี่ยวกับการค้นหาขนาดใหญ่ไม่สามารถใช้งานได้สำหรับ CPU ควอนตัมปัญหามีอยู่ถ้าบางคนใช้ CPUS ปกติเพื่อสร้างคีย์ ทำลายเหล่านั้น พลังของควอนตัมซีพียูอย่างที่ฉันเข้าใจคือมันใช้ qbits แต่ละ qbit สามารถมี 3 ค่าดังนั้นเทคโนโลยีใหม่คือฐาน 3 ไม่ใช่ฐาน 2 CPU 64 qbits จะมีชุดค่าผสม 3 ^ 64 คำ ไม่ทราบว่ามันส่งผลกระทบต่อประสิทธิภาพการทำงาน
juanmf

5
@juanmf: ความเข้าใจของควอนตัมคอมพิวเตอร์เป็นอย่างสมบูรณ์ที่ไม่ถูกต้อง มันไม่มีอะไรเกี่ยวข้องกับการมี 3 ค่าซึ่งจะไม่น่าสนใจอย่างเต็มที่ รายละเอียดมีความซับซ้อนมาก แต่ผลกระทบคืออัลกอริทึมควอนตัมบางตัวสามารถแก้ปัญหาในความซับซ้อน Big-O ที่ต่ำกว่าอัลกอริทึม "ปกติ" บนฮาร์ดแวร์ที่ไม่ใช่ควอนตัม
Michael Borgwardt

137

ง่าย? ได้.

หากคุณคูณจำนวนเฉพาะจำนวนมากคุณจะได้รับจำนวนที่ไม่สำคัญมากด้วยจำนวนเฉพาะสองตัว (ขนาดใหญ่)

การแยกหมายเลขนั้นออกเป็นการดำเนินการที่ไม่สำคัญและความจริงนั้นเป็นที่มาของอัลกอริธึมการเข้ารหัสจำนวนมาก ดูฟังก์ชั่นทางเดียวสำหรับข้อมูลเพิ่มเติม

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


2
นอกจากนี้ยังมีข้อสังเกตว่านอกเหนือจากปัญหาการแยกตัวประกอบแล้ว crypto สมัยใหม่จำนวนมากยัง (หรือแทน) อาศัยปัญหาลอการิทึมแบบไม่ต่อเนื่อง ทั้งสองเป็นฟังก์ชั่น "ทางเดียว": ง่ายต่อการรู้จักอินพุตและคำนวณคำตอบ แต่ยากที่จะตอบและคำนวณอินพุตเหล่านั้น
nezroy

4
การเชื่อมโยงคำอธิบายนี้กับคำว่า "ฟังก์ชันทางเดียว" จะเป็นประโยชน์: en.wikipedia.org/wiki/One-way_function
Chris Conway

แต่ถ้าใช้รหัสสาธารณะเพื่อเข้ารหัสทำไมมันไม่สามารถใช้ทำสิ่งที่ตรงกันข้ามได้?
jayarjo

45

นี่เป็นตัวอย่างที่ง่ายและพบบ่อยมาก

ขั้นตอนวิธีการเข้ารหัส RSAซึ่งเป็นที่นิยมใช้ในเว็บไซต์การค้าที่เชื่อถือได้อยู่บนพื้นฐานของความเป็นจริงที่ว่ามันเป็นเรื่องง่ายที่จะใช้เวลาสอง (ใหญ่มาก) ตัวเลขที่สำคัญและคูณพวกเขาในขณะที่มันเป็นเรื่องยากมากที่จะทำตรงข้าม - ความหมาย: ใช้เวลา จำนวนมากมากซึ่งมันมีเพียงสองปัจจัยสำคัญและค้นหาพวกเขา


30
เพียงแค่ FYI ตัวเลขที่คุณได้รับจากการคูณสองช่วงเวลานั้นเรียกว่ากึ่งนายกรัฐมนตรี
Matthew Brubaker

15

มันไม่ได้เป็นตัวเลขเฉพาะตัวที่สำคัญ แต่เป็นอัลกอริธึมที่ใช้กับจำนวนเฉพาะ โดยเฉพาะอย่างยิ่งการค้นหาปัจจัยของตัวเลข (จำนวนใด ๆ )

อย่างที่คุณทราบหมายเลขใดมีปัจจัยอย่างน้อยสองอย่าง จำนวนเฉพาะมีคุณสมบัติที่ไม่ซ้ำกันซึ่งมีสองปัจจัย: 1 และตัวเอง

เหตุผลแฟคตอริ่งมีความสำคัญมากคือนักคณิตศาสตร์และนักวิทยาศาสตร์คอมพิวเตอร์ไม่ทราบวิธีแยกตัวประกอบจำนวนโดยไม่ต้องลองชุดค่าผสมที่เป็นไปได้ทั้งหมด นั่นคือลองใช้การหารด้วย 2 ก่อนแล้วหารด้วย 3 จากนั้นคูณด้วย 4 และอื่น ๆ หากคุณพยายามแยกตัวประกอบจำนวนเฉพาะ - โดยเฉพาะกับจำนวนที่มีขนาดใหญ่มาก - คุณจะต้องลอง (เป็นหลัก) ทุกจำนวนที่เป็นไปได้ระหว่าง 2 ถึงจำนวนเฉพาะจำนวนมาก แม้แต่ในคอมพิวเตอร์ที่เร็วที่สุดมันจะใช้เวลาหลายปี (หลายศตวรรษ) ในการแยกแยะตัวเลขสำคัญที่ใช้ในการเข้ารหัส

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


10
คุณต้องทดสอบจำนวนเฉพาะจนถึงรากที่สองของจำนวนที่คุณพยายามหา
Matthew Brubaker

3
ฉันรู้ว่า. มันเป็นรายละเอียดที่ฉัน "มองข้าม" ในนามของความเรียบง่าย
s Barry,

@MatthewBrubaker คุณช่วยอธิบายได้ไหมว่าทำไมถึงเป็นเช่นนั้น ฉันไม่เข้าใจจริงๆ
Kartik Chugh

4
@KartikChughヅพูดไม่ได้เป็นนายกรัฐมนตรีและn n = a * bถ้าa > sqrt(n), bต้องมีขนาดเล็กและในทางกลับกันอื่นa * b > nตัวเองซึ่งจะปฏิเสธการเรียกร้องครั้งแรกของเรา ดังนั้นในการตรวจสอบไพรม์เราเพียงตรวจสอบจนถึง sqrt
Abhinav Gauniyal

13

เพราะไม่มีใครรู้วิธีที่รวดเร็วในการแยกจำนวนเต็มเป็นปัจจัยสำคัญ แต่มันง่ายมากที่จะตรวจสอบว่าชุดของตัวประกอบสำคัญคูณกับจำนวนเต็มบางตัวหรือไม่


1
น่าสนใจพอมันเป็นไปได้แล้วในเวลาอันรวดเร็วในการค้นหาว่าตัวเลขนั้นสำคัญแค่ไหน
nes1983

ไม่มี "ถ้าปัจจัยสำคัญมีขนาดใหญ่" ที่นี่
Ben Voigt

@Ben: มันไม่ได้หายไป ปัญหาโดยทั่วไปนั้นยาก โปรดทราบว่าปัญหาที่ยากโดยทั่วไปอาจมีกรณีง่าย ๆ ในกรณีนี้จำนวนเฉพาะไม่ได้เป็นเพียงกรณีง่าย ๆ เท่านั้น
nes1983

2
ไม่มีใครรู้ว่า "ในที่สาธารณะ" อาจเป็นไปได้ว่าหน่วยงานข่าวกรองของรัฐบาลโลกต่างๆมีเทคนิคที่พวกเขาไม่แบ่งปัน พวกเขาจ้างนักคณิตศาสตร์จำนวนมาก ตัวอย่างเช่น NSA เลื่อนการสร้างไพรม์ไพร์มแบบสุ่มโดย "Dual EC_DRBG" ซึ่งพวกเขารู้ว่าอ่อนแอซึ่งเป็นส่วนหนึ่งของโครงการเข้ารหัสลับมาตรฐานสำหรับการใช้งานสาธารณะ bits.blogs.nytimes.com/2013/09/10/…
ดอนสดใส

don: เอกสาร snowden ดูเหมือนจะเปิดเผยว่าไม่ใช่กรณี พวกเขาวาดภาพที่ค่อนข้างชัดเจนว่า (โดยและอาจมีมุม) เอ็นเอสเอไม่สามารถถอดรหัสข้อมูลที่เข้ารหัสผ่านเวทมนตร์คณิตศาสตร์พิเศษเท่านั้นที่พวกเขารู้ Schneier พูดถึงปัญหาอย่างกว้างขวาง
nes1983

12

มีทรัพยากรที่ดีสำหรับการเพิ่มระดับ crypto นี่คือหนึ่ง:

จากหน้านั้น:

ในระบบเข้ารหัสคีย์ - สาธารณะที่ใช้กันมากที่สุดที่คิดค้นโดย Ron Rivest, Adi Shamir และ Len Adleman ในปี 1977 ทั้งสาธารณะและกุญแจส่วนตัวนั้นได้มาจากตัวเลขจำนวนคู่ขนาดใหญ่ตามสูตรทางคณิตศาสตร์ที่ค่อนข้างง่าย ในทางทฤษฎีอาจเป็นไปได้ที่จะได้รับคีย์ส่วนตัวจากกุญแจสาธารณะโดยการทำงานสูตรย้อนหลัง แต่เฉพาะผลิตภัณฑ์ของหมายเลขเฉพาะขนาดใหญ่เท่านั้นที่เป็นของสาธารณะและตัวเลขแฟคตอริ่งของขนาดนั้นสู่ช่วงเวลานั้นยากมากที่แม้แต่ซูเปอร์คอมพิวเตอร์ที่ทรงพลังที่สุดในโลกก็ไม่สามารถทำลายรหัสสาธารณะธรรมดาได้

หนังสือของ Bruce Schneier ประยุกต์วิทยาการเข้ารหัสลับเป็นอีกเรื่องหนึ่ง ฉันขอแนะนำหนังสือเล่มนั้น มันสนุกกับการอ่าน


9

จะเป็นคอนกรีตเล็ก ๆ น้อย ๆ เกี่ยวกับวิธี RSA ใช้คุณสมบัติของตัวเลขที่สำคัญอัลกอริทึม RSA ขึ้นอย่างยิ่งเมื่อออยเลอร์ทฤษฎีบทซึ่งระบุว่าตัวเลขความสำคัญ "A" และ "N" ซึ่งเป็น ^ อีสอดคล้อง 1 โมดูโล N ที่ e คือฟังก์ชัน totient ของ Eulerของ N

ช่วงเวลาที่เข้ามานั้น ในการคำนวณหาฟังก์ชั่น totient ของออยเลอร์ของ N อย่างมีประสิทธิภาพนั้นจำเป็นต้องรู้การแยกตัวประกอบเฉพาะของ N ในกรณีของอัลกอริทึม RSA โดยที่ N = pq สำหรับบางช่วง "p" และ "q" จากนั้น e = (p - 1) (q - 1) = N - p - q + 1 แต่ถ้าไม่รู้ p และ q การคำนวณ e นั้นยากมาก

อีกทั้งยังเป็นนามธรรมโปรโตคอล crypotgraphic จำนวนมากใช้ฟังก์ชั่น trapdoorซึ่งเป็นฟังก์ชั่นที่ง่ายต่อการคำนวณ แต่ยากที่จะกลับด้าน ทฤษฎีจำนวนเป็นแหล่งอุดมสมบูรณ์ของฟังก์ชั่นประตูกล (เช่นการคูณของจำนวนเฉพาะจำนวนมาก) และจำนวนเฉพาะนั้นเป็นศูนย์กลางของทฤษฎีจำนวนอย่างยิ่ง


7

ฉันขอแนะนำหนังสือA Mathematical Journey In Codeคณิตศาสตร์การเดินทางในรหัสหนังสือเล่มนี้มีความรู้สึกที่ดีต่อโลกซึ่งน่าแปลกใจเนื่องจากเป็นเรื่องเกี่ยวกับการเข้ารหัส หนังสือสรุปการเดินทางของซาร่าห์ฟลานเนรีจากปริศนาการเรียนรู้ตั้งแต่เด็กจนถึงการสร้างอัลกอริทึม Cayley-Purser (CP) ตอนอายุ 16 มันให้คำอธิบายอย่างละเอียดเกี่ยวกับฟังก์ชั่นทางเดียวทฤษฎีจำนวนและจำนวนเฉพาะและวิธีการที่เกี่ยวข้อง การอ่านรหัส

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


6

อีกหนึ่งแหล่งข้อมูลสำหรับคุณ ความปลอดภัยตอนนี้! ตอนที่ 30 (ประมาณ 30 นาทีพอดคาสต์เชื่อมโยงไปยังบทบรรยาย) พูดถึงปัญหาการเข้ารหัสและอธิบายว่าทำไมช่วงเวลาสำคัญจึงมีความสำคัญ


6

ฉันไม่ใช่นักคณิตศาสตร์หรือวิทยาการเข้ารหัสลับดังนั้นนี่คือการสังเกตจากภายนอกในเงื่อนไขของคนธรรมดา (ไม่มีสมการแฟนซีขออภัย)

นี้ด้ายทั้งเต็มไปด้วยคำอธิบายเกี่ยวกับวิธีการเฉพาะที่ใช้ในการเข้ารหัสมันเป็นเรื่องยากที่จะหาคนในหัวข้อนี้อธิบายในวิธีที่ง่ายทำไมช่วงเวลาที่มีการใช้ ... มีแนวโน้มมากที่สุดเพราะทุกคนต้องใช้ความรู้ที่ให้ได้รับ

การดูปัญหาจากภายนอกเท่านั้นสามารถสร้างปฏิกิริยาเช่น; แต่ถ้าพวกเขาใช้ผลรวมของสองช่วงเวลาทำไมไม่สร้างรายการผลรวมที่เป็นไปได้ทั้งหมดสองช่วงใด ๆ ที่สามารถสร้างได้

ในเว็บไซต์นี้มีรายการของจำนวน455,042,511ครั้งซึ่งช่วงเวลาที่สูงที่สุดคือ9,987,500,000 ( 10หลัก)

นายกที่รู้จักกันมากที่สุด (ณ วันที่ feb 2015) คือ2 ต่ออำนาจ 257,885,161 - 1ซึ่งเป็น17,425,170หลัก

ซึ่งหมายความว่าไม่มีจุดที่เก็บรายการของช่วงเวลาที่รู้จักทั้งหมดและผลรวมที่เป็นไปได้น้อยลงทั้งหมด ง่ายกว่าที่จะรับหมายเลขและตรวจสอบว่ามันยอดเยี่ยมหรือไม่

การคำนวณจำนวนเฉพาะในตัวเองเป็นงานที่ยิ่งใหญ่ดังนั้นย้อนกลับการคำนวณสองช่วงเวลาที่คูณด้วยกันทั้ง cryptographers และนักคณิตศาสตร์จะบอกว่ามันยากพอ ... วันนี้


3
เฉพาะย่อหน้าสุดท้ายของคุณเท่านั้นที่ถูกต้องจริงๆ อาร์กิวเมนต์ของผลรวมสามารถพูดได้สำหรับหมายเลขคอมโพสิตใด ๆ ด้วย (มีขนาดใหญ่ช่วง [เทคนิคขนาดใหญ่อนันต์], การจัดเก็บของผลรวมทั้งหมดเป็นไปไม่ได้ / โง่) ผลรวมของจำนวนเฉพาะไม่ได้มีความเกี่ยวข้องมากนักในการเข้ารหัสสำคัญกว่า (โดยทั่วไปเช่นในกรณีของ RSA) เป็นผลิตภัณฑ์ของพวกเขา นอกจากนี้โดยย้อนกลับคำนวณคุณอาจหมายถึงแฟ นั่นอาจจะช่วยในสิ่งที่คุณหมายถึงที่นั่น
initramfs

4

อัลกอริทึมการเข้ารหัสลับโดยทั่วไปใช้ความปลอดภัยในการมี "ปัญหาที่ยาก" อัลกอริธึมที่ทันสมัยส่วนใหญ่ดูเหมือนจะใช้แฟคตอริ่งจำนวนมากเป็นปัญหาที่ยากลำบากของพวกเขา - ถ้าคุณคูณสองจำนวนมากเข้าด้วยกันการคำนวณปัจจัยของพวกเขาคือ "ยาก" (เช่นใช้เวลานาน) หากตัวเลขสองตัวนั้นเป็นจำนวนเฉพาะจะมีเพียงคำตอบเดียวซึ่งทำให้ยากยิ่งขึ้นและรับประกันได้ว่าเมื่อคุณพบคำตอบมันเป็นคำตอบที่ถูกต้องไม่ใช่คำตอบอื่น ๆ ที่ให้ผลลัพธ์แบบเดียวกัน


4

ฉันคิดว่าสิ่งที่สำคัญในการเข้ารหัสไม่ใช่ตัวของตัวเอง แต่มันคือ ปัญหาของปัญหาการแยกตัวประกอบที่สำคัญ

สมมติว่าคุณมีจำนวนเต็มที่มากซึ่งเป็นที่รู้กันว่าเป็นผลคูณสอง m และ n มันไม่ง่ายเลยที่จะหาว่า m และ n เป็นอะไร อัลกอริทึมเช่น RSA ขึ้นอยู่กับข้อเท็จจริงนี้

ยังมีบทความที่ตีพิมพ์เกี่ยวกับอัลกอริทึมที่สามารถ "แก้ปัญหา" การแยกตัวประกอบเฉพาะช่วงเวลาที่ยอมรับได้โดยใช้คอมพิวเตอร์ควอนตัม ดังนั้นอัลกอริธึมที่ใหม่กว่าในการเข้ารหัสอาจไม่พึ่งพา "ความยากลำบาก" ของการแยกตัวประกอบเฉพาะนี้อีกต่อไปเมื่อคอมพิวเตอร์ควอนตัมมาถึงเมือง :)


3

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


นี่ดูซ้ำซ้อนกับฉันเล็กน้อย ส่วนหนึ่งจากส่วนสำคัญที่อ่อนแอซึ่งสามารถแสดงความคิดเห็นกับคำตอบด้านบน :)
46432 Ulysse BN

-1

หมายเลขหลักส่วนใหญ่จะใช้ในการเข้ารหัสเนื่องจากใช้เวลานานในการพิจารณาว่าหมายเลขที่กำหนดเป็นจำนวนเฉพาะหรือไม่ สำหรับแฮ็กเกอร์หากอัลกอริทึมใด ๆ ใช้เวลานานในการทำลายรหัสมันจะไร้ประโยชน์สำหรับพวกเขา


7
การหาว่าตัวเลขเป็นจำนวนเฉพาะราคาถูกหรือไม่และเราต้องการให้ราคาถูก เราจะรู้ได้อย่างไรว่าเราเลือกช่วงเวลาเป็นปัจจัยหลักของเราใน RSA หรือนายกรัฐมนตรีเป็นโมดูลัสใน crypto ฟิลด์ จำกัด สิ่งที่มีราคาแพงคือการแยกจำนวนคอมโพสิตออกเป็นปัจจัยที่สำคัญ
CodesInChaos
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.