TL;ดร คุณต้องมี NTT สำหรับเลขคณิตที่แน่นอนในแอปพลิเคชัน crypto
FFT เป็นเพียง อัลกอริทึม สำหรับการประเมินค่า DFT แบบดั้งเดิม สำหรับค่าเชิงซ้อน (จำนวนจริงและจำนวนเต็มเป็นชุดย่อยของฟิลด์เชิงซ้อน $(f_0,\dots,f_{N-1})$ ความยาว $N$ ซึ่งกำหนดไว้เหนือฟิลด์ที่ซับซ้อน $\mathbb{C}$ โดยใช้รากที่ซับซ้อนของเอกภาพของระเบียบ $N.$
ที่นี่เรามี
$$
F(\lambda)=\sum_{k=0}^{N-1} f_k e^{2 \pi i \lambda k/N}=
\sum_{k=0}^{N-1} f_k \xi_N^{\แลมบ์ดา k}, \quad
\xi_N:=e^{2 \pi i /N}, \lambda=0,1,\ldots,N-1
$$
รากเหง้าแห่งเอกภาพอันซับซ้อนดังกล่าวมีอยู่สำหรับทุกคน $N$อย่างไรก็ตาม FFT จะมีประสิทธิภาพมากกว่าหาก $N$ เป็นแบบคอมโพสิตซึ่งได้รับประสิทธิภาพสูงสุดสำหรับ $N=2^ม,$ สำหรับจำนวนเต็ม $ม.$
ปัญหาเกี่ยวกับ DFT: สำหรับการเข้ารหัส เราทำงานร่วมกับวัตถุที่มีขอบเขตจำกัด และสามารถได้รับความแม่นยำเต็มรูปแบบซึ่งใช้ไม่ได้ในทางปฏิบัติในฟิลด์ที่ซับซ้อน เนื่องจากการโต้แย้งของรากที่ซับซ้อนของเอกภาพนั้นไม่มีเหตุผล และโดยทั่วไปแล้วการคำนวณเลขคณิตที่แน่นอนนั้นเป็นไปไม่ได้
ตอนนี้ NTT ไม่ว่าจะขึ้นอยู่กับฟิลด์จำกัดหรือรากจำนวนเต็มของเอกภาพโมดูโลบางวง ให้ความแม่นยำอย่างเต็มที่ (DFT ที่ซับซ้อนไม่สามารถทำได้และไม่สามารถใช้สำหรับการเข้ารหัสลับ) และได้รับการประเมินในวงแหวนดั้งเดิมที่ใช้ในการเข้ารหัส พวกเขายังคงเป็น DFT และในระยะเวลาหนึ่งก็สามารถมีการใช้งานที่มีประสิทธิภาพได้
การเลือก NTT:
สมมติว่าเวกเตอร์อินพุตเป็นลำดับของ $N$ จำนวนเต็มไม่เป็นลบ
โดยทั่วไปจำเป็นต้องเลือกโมดูลัส $M$ ดังนั้น $1â¤N<M$ และทุกค่าที่ป้อนอยู่ในช่วง $[0,ม).$ หากเรากำลังพูดถึงการใช้งาน crypto เราก็รู้โมดูลัสแล้ว
เลือกจำนวนเต็ม $kâ¥1$ และกำหนด $N'=kN+1$ เป็นโมดูลัสการทำงาน พวกเราต้องการ $N'â¥M,$ และเพื่อความเรียบง่าย $N'$ ให้เป็นจำนวนเฉพาะ ทฤษฎีบทของไดริชเลตรับรองว่าเป็นเช่นนั้น $N$ และ $ม,$ สามารถเลือกได้ $k$ เพื่อทำ $N'$ นายกรัฐมนตรี
เพราะ $N'$ เป็นจำนวนเฉพาะ, กลุ่มคูณของ $\mathbb{Z}_{N'}$ มีขนาด $Ï(N')=N'â1=kN$ เช่นเดียวกับเครื่องกำเนิดไฟฟ้า $ก,$ ซึ่งเป็นรากฐานดั้งเดิม (N'â1) ของความสามัคคี
อนุญาต $\omegaâ¡g^k \pmod N'.$ แล้ว $\โอเมก้า$ เป็นแบบดั้งเดิม $N$รูทของเอกภาพตามที่กำหนดเพื่อให้ได้ความยาว DFT $N,$ นี่คือ NNT:
$$
F(\lambda)=\sum_{k=0}^{N-1} f_k \omega^{\lambda k},\quad \lambda \in \mathbb{Z}_N
$$
เป็นไปได้ที่จะใช้การลดลงของมอนต์โกเมอรี (หรือการลดลงของ Barrett ที่มีประสิทธิภาพน้อยกว่า) เพื่อเพิ่มความเร็วของการคำนวณทางคณิตศาสตร์แบบโมดูลาร์ใน NTT