Điểm:4

Sự khác biệt giữa FFT và NTT

lá cờ in

Sự khác biệt chính giữa Biến đổi Fourier nhanh (FFT) và Biến đổi lý thuyết số (NTT) là gì?

Tại sao chúng tôi sử dụng NTT chứ không phải FFT trong các ứng dụng mật mã?

Cái nào là tổng quát của cái kia?

Điểm:3
lá cờ ng

Tuyên bố miễn trừ trách nhiệm: Toán Comp-Sci đi trước, các nhà toán học thích hợp hãy cẩn thận. ;)

Biến đổi Fourier nhanh (FFT) và Biến đổi Fourier rời rạc (DFT)

FFT là một thuật toán cho phép tính toán DFT, cũng như nghịch đảo của nó, đối với các tín hiệu có giá trị phức tạp.

Đó là: Cho một tín hiệu có giá trị phức tạp $x = (x_0, \ldots, x_{n-1})$ chiều dài $n$, FFT cho phép tính toán $\operatorname{DFT}(x) = (X_0, \ldots, X_{n-1})$, các thành phần của nó được định nghĩa là: $$ X_l = \sum_{j = 0}^{n-1} x_j g^{-jl} $$ Ở đâu $g$ là một nguyên thủy $n$-gốc thứ của sự thống nhất trong trường phức tạp, ví dụ: $e^{i 2 \pi / n}$.

Các vấn đề khi làm việc trong lĩnh vực phức tạp

Tuy nhiên, trong khoa học máy tính, có những nhược điểm khi làm việc trong lĩnh vực số phức. Cụ thể là:

  • Chúng ta cần lo lắng về các vấn đề làm tròn
  • Các thao tác trên số dấu phẩy động có xu hướng kém hiệu quả hơn trên số nguyên

Tổng quát hóa cho các cấu trúc đại số khác với Biến đổi lý thuyết số (NTT)

Tuy nhiên, hóa ra định nghĩa của DFT cũng có ý nghĩa đối với các cấu trúc đại số khác với trường phức, miễn là có thể tìm thấy nghiệm đơn vị thích hợp.

Sau đó, NTT đề cập đến việc 'chuyển đổi' vấn đề này sang cấu trúc khác, cụ thể là thực hiện DFT trên một trường hữu hạn - thường là trường hữu hạn $F_p$ của số nguyên modulo một số nguyên tố $p$.

Ưu điểm của làm việc trong một lĩnh vực hữu hạn

Làm việc trong một trường hữu hạn có nghĩa là:

  • Chúng ta không cần lo lắng về việc làm tròn
  • Hoạt động số nguyên có xu hướng được thực hiện
  • Một số hoạt động số nguyên (ví dụ: nhân với lũy thừa của hai) có thể được thực hiện hiệu quả hơn nữa

Đó là lý do tại sao, trong khoa học máy tính, chúng ta có xu hướng sử dụng NTT để làm việc trên một trường hữu hạn, thay vì trường phức hợp.

Tóm lược

Để trở lại câu hỏi của bạn:

  • Trong khoa học máy tính, chúng tôi có xu hướng sử dụng NTT thay vì FFT trong lĩnh vực phức tạp vì nó thực tế và hiệu quả hơn
  • Theo một nghĩa nào đó, bạn có thể coi DFT-vòng chung là một tổng quát của DFT-trường-phức (được tính thông qua FFT) cho các cấu trúc đại số khác. Sau đó, NTT sẽ là ứng dụng của DFT vòng chung này cho các trường hữu hạn. Tôi không biết liệu tôi có gọi bản thân NTT là sự khái quát hóa của FFT hay không.

Đọc

Phần trên chủ yếu dựa trên "Số nguyên tố: Quan điểm tính toán" (978-0387252827) của Crandall & Pomerance, đây là phần lớn thời gian tôi tiếp xúc với chủ đề này. Ngoài ra còn có các bài viết trên Wikipedia về DFT trên trường phức tạp, tổng quát hóa của nó thành các vành tùy ý, phần sau có một phần về NTT cho phép áp dụng nó vào trường hữu hạn

Điểm:3
lá cờ sa

TL;DR Bạn cần NTT để tính toán chính xác trong các ứng dụng tiền điện tử.

FFT chỉ là một thuật toán để đánh giá DFT truyền thống, đối với các vectơ có giá trị phức tạp (lưu ý số thực và số nguyên là tập con của trường phức nên nó cũng áp dụng cho chúng) $(f_0,\dots,f_{N-1})$ chiều dài $N$ được xác định trên trường phức $\mathbb{C}$ sử dụng gốc phức của sự thống nhất của trật tự $N.$

Ở đây chúng tôi có $$ 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^{\lambda k}, \quad \xi_N:=e^{2 \pi i /N}, \lambda=0,1,\ldots,N-1 $$

Một gốc rễ phức hợp như vậy của sự thống nhất tồn tại cho tất cả $N$, tuy nhiên FFT hiệu quả hơn nếu $N$ là hỗn hợp, hiệu quả cao nhất thu được cho $N=2^m,$ cho một số nguyên $m.$

Các vấn đề với DFT: Đối với mật mã, chúng tôi làm việc với các đối tượng hữu hạn và thực sự có thể đạt được độ chính xác đầy đủ, điều này không áp dụng được trong thực tế trong trường phức, vì lập luận về căn phức của đơn vị là không hợp lý và số học chính xác nói chung là không thể.

Bây giờ, của NTT, dù dựa trên trường hữu hạn hay nghiệm nguyên của phép đơn vị modulo các vành nhất định, cung cấp cho chúng tôi độ chính xác đầy đủ (các DFT phức tạp không thể làm điều này và không thể được sử dụng cho tiền điện tử) và được đánh giá trong vòng gốc được sử dụng trong mật mã. Chúng vẫn là DFT. Và đối với độ dài nhất định có thể có triển khai hiệu quả.

Chọn NTT:

Giả sử vectơ đầu vào là một chuỗi các $N$ số nguyên không âm.

Nói chung, người ta cần chọn một mô đun $M$ như vậy mà $1â¤N<M$ và mọi giá trị đầu vào đều nằm trong phạm vi $[0,M).$ Nếu chúng ta nói triển khai tiền điện tử, thì chúng ta đã biết mô-đun.

Chọn một số nguyên $kâ¥1$ và xác định $N'=kN+1$ như mô đun làm việc. Chúng tôi cần $N'â¥M,$ và để đơn giản lấy $N'$ thành số nguyên tố. Định lý Dirichlet đảm bảo rằng $N$$M,$ có thể chọn $k$ để làm cho $N'$ một số nguyên tố.

Bởi vì $N'$ là số nguyên tố, nhóm nhân của $\mathbb{Z}_{N'}$ có kích thước $Ï(N')=N'â1=kN$ cũng như máy phát điện $g,$ đó cũng là căn nguyên thủy thứ (N'â1) của đơn vị.

Để cho $\omegaâ¡g^k \pmod N'.$ sau đó $\omega$ là một nguyên thủy $N$gốc của sự thống nhất, theo yêu cầu để có được DFT có độ dài $N,$ vì vậy đây là NNT: $$ F(\lambda)=\sum_{k=0}^{N-1} f_k \omega^{\lambda k},\quad \lambda \in \mathbb{Z}_N. $$ Có thể áp dụng phép rút gọn Montgomery (hoặc phép rút gọn Barrett kém hiệu quả hơn) để tăng tốc số học mô-đun trong NTT.

C.S. avatar
lá cờ in
Cảm ơn bạn! Ý của bạn là gì khi "với các đối tượng hữu hạn, chúng ta có thể đạt được độ chính xác hoàn toàn không áp dụng trong thực tế trong trường phức hợp"? Bạn có ý nghĩa gì bởi "độ chính xác"?
kodlu avatar
lá cờ sa
Số học số nguyên là chính xác. Nếu bạn thực hiện giảm modulo thì nó cũng hữu hạn vì giá trị lớn nhất là modul trừ đi một. Trong các hoạt động trường phức tạp phải được thực hiện bởi các đại lượng độ dài bit hữu hạn, về bản chất là các xấp xỉ của các số thực. Độ chính xác được thể hiện bằng số bit được sử dụng.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.