พิจารณาปัญหาต่อไปนี้:
ปล่อย เป็นเซตย่อยของตัวเลขธรรมชาติ
ให้ | โดยที่เป็นตัวหารร่วมมากที่สุดของและ
ค้นหาองค์ประกอบสูงสุดของG
ปัญหานี้สามารถแก้ไขได้โดยการใช้ตัวหารสามัญที่ยิ่งใหญ่ที่สุดของแต่ละคู่โดยใช้อัลกอริทึมของ Euclid และติดตามตัวที่ใหญ่ที่สุด
มีวิธีที่มีประสิทธิภาพมากขึ้นในการแก้ปัญหานี้หรือไม่?
3
คุณอาจต้องการดูหัวข้อ 3.3 ของการขุด Ps และ Qs ของคุณ: การตรวจหาคีย์ที่อ่อนแออย่างกว้างขวางในอุปกรณ์เครือข่าย (Heninger et al, Usenix Security 2012) พวกเขาอธิบายอัลกอริทึมสำหรับการคำนวณ gcd ของ pairwise ใน gcd's ในการตั้งค่าบางอย่างโดยใช้แผนผังผลิตภัณฑ์และต้นไม้ที่เหลือ แต่ฉันไม่รู้ว่ามันครอบคลุมปัญหาของคุณหรือไม่
—
DW
คุณเคยลองอะไรที่มีความสำคัญเป็นพิเศษหรือไม่?
—
Ryan
สมมติว่าตัวเลขทั้งหมดนั้นค่อนข้างดี แต่ยากที่จะแยกตัวประกอบ (เช่นแต่ละตัว เท่ากับ สำหรับช่วงเวลาที่แตกต่างกันขนาดใหญ่ ) ดูเหมือนยากที่จะหลีกเลี่ยงการตรวจสอบ GCD ตามเข็มนาฬิกาทั้งหมด บอกฉันว่าหลังจากตรวจสอบทุกคู่แล้ว GCD นั้นเป็นจำนวนเต็ม . คุณเดาได้ยังไงโดยไม่ต้องคำนวณมัน?)
—
usul
ลิงก์ @usul DW นั้นเป็นปัญหานั้น คีย์เข้ารหัสจำนวนมากควรเป็นผลคูณของสองช่วงเวลาที่แตกต่างกัน แต่เราสงสัยว่าคีย์เข้ารหัสบางตัวมีปัจจัยสำคัญร่วมกัน (ซึ่งจะเป็น gcd ของทั้งสองคีย์ทำให้ทั้งสองเป็นเรื่องง่ายที่จะแยกปัจจัย) อัลกอริทึมนั้นให้คุณค้นหากุญแจที่มีปัจจัยร่วมโดยไม่ต้องคำนวณ n (n-1) / 2 gcd สำหรับ n = 1 พันล้าน
—
gnasher729