Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

24 696 0
Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 BỘ GIÁO DỤC ĐÀO TẠO TẬP ĐOÀN BƯU CHÍNH VI ỄN THÔNG VIỆT NAM HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG NGUYỄN TRUNG HIẾU ỨNG DỤNG FPGA THỰC HIỆN THUẬT TOÁN NHÂN V À BÌNH PHƯƠNG TRÊN VÀNH ĐA THỨC CHUYÊN NGÀNH : KỸ THUẬT ĐIỆN TỬ MÃ SỐ:23.060.52.704.3898 TÓM TẮT LUẬN VĂN THẠC SỸ KỸ THUẬT Người hướng dẫn khoa học: TS. NGUYỄN NGỌC MINH HÀ NỘI - 2010 2 Luận văn được hoàn thành tại: Học viện Công nghệ Bưu chính Viễn thông Tập đoàn Bưu chính Viễn thông Việt Nam Người hướng dẫn khoa học: TS. Nguyễn Ngọc Minh Phản biện 1: …………………………………………………… …………………………………………………… Phản biện 2: …………………………………………………… …………………………………………………… Phản biện 3: …………………………………………………… …………………………………………………… Luận văn sẽ được bảo vệ trước hội đồng chấm luận văn tại Học viện Công nghệ Bưu chính Viễn thông Vào lúc: giờ ngày tháng năm 2010. Có thể tìm hiểu luận văn tại: Thư viện Học viện Công nghệ Bưu chính Viễn thông 3 ……………………………………………………… 4 LỜI NÓI ĐẦU Nâng cao hiệu quả của hệ thống truyền tin là một yêu cầu thực tiễn luôn chứa đựng tính cấp thiết, tính đa dạng, lại vừa chứa đựng tính phát triển không ngừng. Các phương pháp mã hóa, mật mã đã đóng góp không nhỏ vào việc nâng cao hiệu quả đảm bảo độ an toan, tin cậy của các hệ thống truyền tin. Thuật toán nhân bình phương đa thức có lặp được ứng dụng đóng vai trò quan trọng trong việc xây dựng nhiều bộ mã hóa, mật mã như: Các bộ mã hóa xyclic, xyclic cục bộ, Mật mã AES, các hệ mật RSA, Chor-Rivest, Merkele-Hellman, Elgamal, Rabin, Ngày nay, sự phát triển không ngừng của thiết kế số cho các cấu kiện logic khả trình theo công nghệ CPLD/FPGA mở ra cho chúng ta hướng nghiên cứu xây dựng thuật toán nhân bình phương đa thức có lặp trên các cấu kiện logic khả trình, từ đó ứng dụng xây dựng các bộ mã hóa, mật mã trên các cấu kiện FPGA. Luận văn nghiên cứu ứng dụng của thuật toán cho việc xây dựng một số bộ mã xyclic xyclic cục bộ. Mã xyclic cục bộ được GS.TSKH. Nguyễn Xuân Quỳnh, GS.TS. Nguyễn Bình đưa ra đầu tiên. Những nghiên cứu từ trước cho thấy những ưu điểm nổi bật của mã như: Tính đa dạng, tốc độ lập mã nhanh, mạch giải mã đơn giản. Phương pháp luận của đề tài dựa vào các khái niệm đã có như: - Lưu đồ thực hiện thuật toán nhân bình phương đa thức có lặp cho ngôn ngữ lập trình thông dụng để xây dựng lưu đồ thực hiện thuật toán trên FPGA. - Cách xây dựng các bộ mã xyclic xyclic cục bộ từ các tài liệu đã nghiên cứu trước đó để tự xây dựng phương pháp mã hóa, giải mã tạo nên các bộ mã hoàn chỉnh trên FPGA. Nội dung luận văn bao gồm 3 chương phần phụ lục. Chương I: Cơ sở đại số. Trình bày những vấn đề cơ bản về lý thuyết đại số, vành đa thức, từ đó nghiên cứu thuật toán nhân bình phương đa thức có lặp. Chương II: Các mã xyclic trên vành đa thức. 5 Trình bày các mã xyclic, phân hoạch các mã xyclic cục bộ, quan hệ giữa mã xyclic xyclic cục bộ, một số kết quả nghiên cứu về mã xyclic cục bộ. Chương III: Thiết kế mô phỏng trên FPGA. Trình bày tổng quan về FPGA, xây dựng lưu đồ thực hiện thuật toán nhân bình phương đa thức có lặp trên FPGA, xây dựng bộ mã xyclic (15, 5), xây dựng bộ mã xyclic cục bộ (27, 9) với các chương trình thiết kế mô phỏng minh họa cho từng nội dung. Phụ lục: Các chương trình thiết kế mô phỏng trên FPGA Phụ lục được chia thành 3 phần: P1, P2 P3. Đó là chương trình nguồn của các thiết kế trên FPGA như thuật toán nhân bình phương đa thức có lặp, mã hóa giải mã bộ mã xyclic (15,5) với phần tử sinh (024), mã hóa giải mã bộ mã xyclic cục bộ (27,9). CHƯƠNG 1: CƠ SỞ ĐẠI SỐ 1.1. MỞ ĐẦU Trong chương này nghiên cứu về thuật toán nhân bình phương đa thức có lặp. Cấu trúc của chương gồm ba phần: Lý thuyết đại số, vành đa thức, thuật toán nhân bình phương đa thức có lặp. Hai phần đầu là cơ sở lý thuyết giúp cho việc tiếp cận hiểu sâu về thuật toán, phần thứ ba sẽ nghiên cứu lưu đồ thực hiện thuật toán trên Z n , F p m một số ví dụ áp dụng, cuối chương đưa ra các đề xuất ứng dụng thuật toán hướng nghiên cứu cho các chương tiếp theo. 1.2. LÝ THUYẾT ĐẠI SỐ 1.2.1. Những vấn đề cơ bản về lý thuyết số Định lý 1.1: Với mỗi số nguyên n  2 ta luôn phân tích được dưới dạng tích lũy thừa các số nguyên tố: 1 2 3 1 2 3 . . k e e e e k n p p p p  Trong đó: p i là các số nguyên tố khác nhau. e i là các số nguyên dương. Ví dụ 1.1: 2 2 36 2 .3  ; 3 88 2 .11  ; 3 2 600 2 .3.5  ; 2 2 2 900 2 .3 .5  Định nghĩa 1.10: 6 Các số nguyên modulo n (ký hiệu Z n ) là tập các lớp tương đương của các số nguyên {0, 1, 2, , n-1}. Các phép tính trong Z n được thực hiện theo modulo n. 1.2.2. Những vấn đề cơ bản về cấu trúc đại số Các hệ thống đại số là những hệ thống tuân theo những quy luật và quy tắc nhất định, thông thường đó là những quy luật dùng trong hệ thống số. Những hệ thống số cụ thể như nhóm, vành, trường. 1.3. VÀNH ĐA THỨC 1.4. THUẬT TOÁN NHÂN BÌNH PHƯƠNG ĐA THỨC 1.4.1. Thuật toán nhân bình phương lặp trong Z n INPUT: a  Z, số nguyên 0  k < n có biểu diễn nhị phân: 0 2 t i i i k k    (hay 0 1 2 1 0 1 2 1 .2 .2 .2 .2 .2 t t t t k k k k k k         ) OUTPUT: mod k a n B1: Đặt b = 1; Nếu k = 0 thì return (b) B2: Đặt A = a B3: Nếu k 0 =1 thì gán b = a B4: for (i = 1; i <= t; i++) B41: Đặt A = A 2 mod n B42: Nếu k i = 1 thì đặt b = A*b mod n B5: return (b) 1.4.2. Thuật toán nhân bình phương lặp cho đa thức trong F p m INPUT:   m p g x F  , a  Z, số nguyên 0 1 m k p    có biểu diễn: 0 2 t i i i k k    hay 0 1 2 1 0 1 2 1 .2 .2 .2 .2 .2 t t t t k k k k k k         . (Trường       / m p p F x f x   , trong đó     p f x x  là một đa thức tối giản bậc m trên p  ). OUTPUT:     mod k g x f x     B1: Đặt s(x) = 1; Nếu k = 0 thì return (s(x)) B2: Đặt G(x) = g(x) B3: Nếu k 0 = 1 thì gán s(x) = g(x) B4: for (i = 1; i <= t; i++) B41: Đặt G(x) =G(x) 2 mod f(x) 7 B42: N ế u k i = 1 thì đ ặ t s(x) = G(x)*s(x) mod f(x) B5: return (s(x)) Ví dụ 1.15:     22 7 6 4 2 9 3 1 mod 1 x x x x x x x x         Ta có   7 6 4 2 1 g x x x x x x       ,   9 3 1 f x x x x     , k = 22 10 = 10110 (t = 4). Kết quả tính toán theo thuật toán như sau: i k i G(x) s(x) 0 0   7 6 4 2 1 g x x x x x x       1 1 1 5 3 2 1 x x x    5 3 2 1 x x x    2 1 6 2 1 x x x    8 7 5 2 x x x x    3 0 6 3 2 1 x x x    8 7 5 2 x x x x    4 1 3 1 x  7 5 4 3 2 x x x x x x      1.4.3. Các ứng dụng của thuật toán trên vành đa thức Thuật toán có nhiều ứng dụng trong việc tìm kiếm phần dư của phép chia lũy thừa cho một số, lũy thừa của một đa thức cho một đa thức, ứng dụng xây dựng các bộ mã hóa, mật mã: mã xyclic; Mật mã AES, hệ mật RSA, Chor-Rivest, Merkele-Hellman, Elgamal, Rabin, Nội dung luận văn tập trung tìm hiểu phương pháp thực hiện thuật toán nhân bình phương đa thức ở dạng tổng quát trên FPGA, từ đó xây dựng thuật toán tạo nhóm nhân cho các mã xyclic xyclic cục bộ trên vành x n + 1, là thành phần quan trọng cho việc xây dựng các bộ mã xyclic xyclic cục bộ ứng dụng cho việc mã hóa dữ liệu. 1.5. KẾT LUẬN Chương này đã trình bày những kiến thức cơ bản nhất về cơ sở lý thuyết đại số, vành đa thức thuật toán nhân bình phương có lặp trên Z n F p m . Từ đó tìm hiểu những ứng dụng của thuật toán này. Trong nội dung nghiên cứu của luận văn sẽ tập trung vào nghiên cứu ứng dụng FPGA để thực hiện thuật toán áp dụng cho việc xây dựng các bộ mã xyclic trên vành đa thức phục vụ cho việc mã hóa dữ liệu. 8 CHƯƠNG 2: CÁC MÃ XYCLIC TRÊN VÀNH ĐA THỨC 2.1. MỞ ĐẦU Trong chương này, chúng ta sẽ đi tìm hiểu về các nhóm nhân trên vành đa thức phân hoạch tổng quát vành đa thức làm cơ sở lý thuyết cho việc nghiên cứu mã xyclic xyclic cục bộ trên vành đa thức, về cách thức xây dựng bộ tạo mã giải mã cho các mã này. Nội dung của chương cũng đề cập đến mối quan hệ giữa mã xyclic xyclic cục bộ, cũng như các kết quả nghiên cứu về mã xyclic cục bộ một số hướng mở trong việc nghiên cứu về mã này. Chương này giúp cho việc xây dựng kiểm tra các bộ mã sẽ được nghiên cứu, thực hiện thiết kế mô phỏng trong chương 3. 2.2. MÃ XYCLIC TRUYỀN THỐNG 2.2.1. Vành đa thức Định nghĩa 2.1: Nếu R là một vành giao hoán thì vành đa thức [ ] R x là một vành được tạo bởi tập tất cả các đa thức của biến x có các hệ số trong R . Hai phép toán là phép cộng phép nhân đa thức theo modulo 1 n x  . Trong trường nhị phân (2) GF , vành đa thức ký hiệu 2 [ ]/ 1 n x x  Z . 2.2.2. Ideal của vành đa thức Định nghĩa 2.2: Ideal I của vành đa thức gồm tập các đa thức ( ) a x là bội của một đa thức ( ) g x thỏa mãn:  ( )| 1 n g x x  ( ( ) g x là ước của 1 n x  ).  deg ( ) mindeg ( ) g x r a x   với ( ) I, ( ) 0 a x a x    . Ký hiệu Ideal trong vành đa là I ( ) g x  . 2.2.3. Định nghĩa mã xyclic Định nghĩa 2.5: Mã xyclic (n,k) là Ideal I=  g(x)  của vành đa thức 2 [ ]/ 1 n x x  ¢ . 9 Định nghĩa 2.6: Mã xyclic là một bộ mã tuyến tính có tính chất sau: Nếu a(x)là một từ mã thì dịch vòng của a(x) cũng là một từ mã thuộc bộ mã này. 2.2.4. Ma trận sinh ma trận kiểm tra của mã xyclic Vì mã xyclic ( , ) n k là một mã tuyến tính nên có thể mô tả nó thông qua ma trận sinh G chứa k véc tơ hàng độc lập tuyến tính. Ma trận G được viết như sau : 1 ( ) . ( ) ( ) k g x x g x G x g x                 Vì ( )| 1 n g x x  , nên 1 ( ). ( ) n x g x h x   , hay: 1 ( ) ( ) n x h x g x   Đa thức ( ) h x được gọi là đa thức kiểm tra. Vì ( ). ( ) 0 mod 1 n g x h x x   nên các đa thức ( ) g x ( ) h x được gọi là các đa thức trực giao. 2.3. PHÂN HOẠCH VÀNH ĐA THỨC MÃ XYCLIC CỤC BỘ 2.3.1. Nhóm nhân xyclic trên vành đa thức Định nghĩa 2.7: Nhóm nhân xyclic (CMG-Cyclic Multiplicate Group) trong vành đa thức là tập hợp các phần tử đều bằng lũy thừa của một phần tử gọi là phần tử sinh. Trong vành đa thức có nhiều nhóm nhân xyclic, số nhóm nhân bằng số các lũy đẳng có thể có trong vành. 2 3 { , , , } m A      Trong đó: A là nhóm nhân xyclic; α là phần tử sinh (đa thức sinh); m là cấp của nhóm nhân, cũng chính là cấp của phần tử sinh  . Cấp của nhóm là tổng số các phần tử của nhóm. Phần tử đơn vị của nhóm chính là một lũy đẳng ( ) e x có cấp bằng 1. 10 Định nghĩa 2.8: Trong vành đa thức 2 [ ]/ 1 n x x  Z , nếu tồn tại một đa thức mà bình phương của nó lại bằng chính nó thì được gọi là đa thức lũy đẳng ký hiệu là ( ) e x : 2 2 ( ) ( ) ( ) e x e x e x   . Các lũy đẳng ( ) e x xác định trên cơ sở phân tích chu trình s C . 2.3.2. Các loại nhóm nhân 2.3.3. Phân hoạch vành đa thức 2.3.4. Mã xyclic cục bộ trên vành đa thức 2.3.4.1. Khái niệm về mã xyclic cục bộ Định nghĩa 2.12: Mã xyclic cục bộ là một mã tuyến tính có các dấu mã là một tập con không trống tuỳ ý các lớp kề trong phân hoạch của vành đa thức theo một nhóm nhân xyclic A . 2.3.4.2. Cách biểu diễn mã XCB a) Biểu diễn theo trưởng lớp kề Định nghĩa 2.13: Lớp kề là một tập hợp có tối đa k phần tử mà giá trị của chúng được xác định từ phần tử trưởng lớp kề theo một biểu thức toán học (trưởng lớp kề là phần tử đứng đầu tiên trong một lớp kề). Nếu gọi giá trị của trưởng lớp kề là  0 thì các phần tử khác trong lớp kề được tính:   0 .2 mod ; 1, 1 i i p i k      b) Biểu diễn theo ma trận sinh Đây là cách biểu diễn truyền thống, mã XCB ( , ) n k là mã hệ thống tuyến tính nên có thể mô tả theo ma trận sinh   , G n k có k hàng n cột.   , , , . k k k n k G n k I P   Với , k k I là ma trận đơn vị cấp k, , k n k P  là ma trận kiểm tra. 2.3.4.3. Phương pháp xây dựng mã xyclic cục bộ Bước đầu tiên để xây dựng mã XCB là xác định tất cả nhóm nhân xyclic có thể có trên một vành đa thức, các nhóm nhân này có cấp khác nhau. Sau đó xác định nhóm nhân sinh để xây dựng các cấp số nhân. [...]... bình phương trên vành đa thức với những nội dung đã thực hiện được như sau:  Tìm hiểu về cơ sở lý thuyết số, vành đa thức thuật toán nhân bình phương đa thức có lặp trên Zn, Fpm với các ví dụ minh họa cho thuật toán  Tìm hiểu các mã xyclic trên vành đa thức, phương pháp phân hoạch vành theo các nhóm nhân xyclic  Tìm hiểu phương pháp mã hóa giải mã cho các mã xyclic Về mặt kỹ thuật việc... thực hiện bằng các bộ cộng modul 2 bộ nhân đa thức, việc giải mã thì sử dụng phương pháp giải mã ngưỡng theo đa số chỉ bao gồm các bộ cộng modul 2 bộ so sánh ngưỡng  Nghiên cứu xây dựng lưu đồ thuật toán cho phép nhân bình phương đa thức có lặp trên vành đa thức Xây dựng được lưu đồ thuật toán cho đa thức f(x) tổng quát đa thức f(x) = xn + 1  Xây dựng mạch thực hiện mô phỏng trên FPGA. .. nhóm nhân xyclic  Xây dựng mạch thực hiện mô phỏng trên FPGA cho các mã xyclic (15,5) trên vành đa thức x5 + 1; mã xyclic (27,9) trên vành đa thức x9 + 1 Hướng nghiên cứu tiếp theo: - Nghiên cứu xây dựng mạch thực hiện thuật toán cho các bộ mã trên các vành đa thức khác Nghiên cứu xây dựng mô hình mã hóa giải mã dữ liệu dựa trên mã XCB thực hiện trên FPGA - Tiếp tục nghiên cứu các ứng dụng. .. thức, thuật toán nhân bình phương đa thức có lặp, các mã xyclic trên vành đa thức Nội dung chương này là tìm hiểu tổng quan về công nghệ FPGA, xây dựng các thuật toán nhân bình phương đa thức có lặp trên FPGA (dạng tổng quát trường hợp riêng), làm cơ sở cho việc tạo ra các nhóm nhân cho các bộ mã hóa xyclic xyclic cục bộ Tiếp đó sẽ nghiên cứu xây dựng các bộ giải mã thực hiện trên FPGA dựa trên. .. trên FPGA Kết quả thuật toán ứng dụng để xây dựng các các nhóm nhân cho các bộ mã hóa xyclic xyclic cục bộ Thực hiện giải mã theo phương pháp giải mã ngưỡng trên2 4FPGA Xây dựng được các bộ mã hóa giải mã ngưỡng, giúp ta xây dựng được các bộ mã xyclic xyclic cục bộ thực hiện trên FPGA với một số ví dụ như đã khảo sát KẾT LUẬN KIẾN NGHỊ Đề tài Ứng dụng FPGA thực hiện thuật toán nhân bình. .. xây dựng thuật toán nhân bình phương đa thức có lặp trên FPGA dạng tổng quát, thứ hai là xây dựng thuật toán cho trường hợp đa thức f(x) = xn + 1 3.3.1 Thuật toán áp dụng cho f(x) tổng quát Từ thuật toán được trình bày trong chương 1, ở đây ta tiến hành xây dựng lưu đồ thực hiện thuật toán trên FPGA như hình 3.3 Trong lưu đồ sử dụng các thuật ngữ cách trình bày theo ngôn ngữ mô tả phần cứng VHDL... đồ thuật toán nhân bình phương đa thức thực hiện trên FPGA Giải thích lưu đồ: Thuật toán được thực hiện theo hai phần chính - Phép nhân: Thực hiện theo phương pháp nhân hai số nhị phân thông thường, đầu ra là g_d . nhóm, vành, trường. 1.3. VÀNH ĐA THỨC 1.4. THUẬT TOÁN NHÂN VÀ BÌNH PHƯƠNG ĐA THỨC 1.4.1. Thuật toán nhân và bình phương lặp trong Z n INPUT: a  Z, và. về thuật toán nhân và bình phương đa thức có lặp. Cấu trúc của chương gồm ba phần: Lý thuyết đại số, vành đa thức, thuật toán nhân và bình phương đa thức

Ngày đăng: 17/02/2014, 09:46

Hình ảnh liên quan

Hình 2.1: Các phân hoạch của vành đa thức và các lớp mã tuyến tính - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

Hình 2.1.

Các phân hoạch của vành đa thức và các lớp mã tuyến tính Xem tại trang 12 của tài liệu.
Hình 3.2: Sơ đồ mã hóa mã (15,5,7) với thức sinh (024) - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

Hình 3.2.

Sơ đồ mã hóa mã (15,5,7) với thức sinh (024) Xem tại trang 17 của tài liệu.
Hình 3.3: Sơ đồ giải mã cyclic (15,5) trên 52x/(x  1) - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

Hình 3.3.

Sơ đồ giải mã cyclic (15,5) trên 52x/(x  1) Xem tại trang 18 của tài liệu.
bit. Sơ đồ giải mã của mã này được minh họa tại hình 3.6. - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

bit..

Sơ đồ giải mã của mã này được minh họa tại hình 3.6 Xem tại trang 18 của tài liệu.
Sơ đồ thiết kế mạch mã hóa như hình 3.8. Thành phần mạch bao - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

Sơ đồ thi.

ết kế mạch mã hóa như hình 3.8. Thành phần mạch bao Xem tại trang 19 của tài liệu.
Hình 3.70: Kết quả tổng hợp và cấu hình Hình 3.11: Kết quả mô phỏng - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

Hình 3.70.

Kết quả tổng hợp và cấu hình Hình 3.11: Kết quả mô phỏng Xem tại trang 20 của tài liệu.
Sơ đồ mã hóa cho mã XCB này ở hình 3.12. - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

Sơ đồ m.

ã hóa cho mã XCB này ở hình 3.12 Xem tại trang 20 của tài liệu.
3 bit. Sơ đồ giải mã XCB (27,9) với 3 lớp kề {1, 7, 11} như hình 3.13 - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

3.

bit. Sơ đồ giải mã XCB (27,9) với 3 lớp kề {1, 7, 11} như hình 3.13 Xem tại trang 21 của tài liệu.
Hình 3.9: Sơ đồ mô hình thử nghiệm dưới dạng RTL a) Thiết kế mạch mã hóa  - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

Hình 3.9.

Sơ đồ mô hình thử nghiệm dưới dạng RTL a) Thiết kế mạch mã hóa Xem tại trang 22 của tài liệu.
Sơ đồ thiết kế mạch mã hóa như hình 3.15. Thành phần mạch bao - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

Sơ đồ thi.

ết kế mạch mã hóa như hình 3.15. Thành phần mạch bao Xem tại trang 22 của tài liệu.
Hình 3.11: Sơ đồ RTL của mạch khối DeCoding - Ứng dụng FPGA thực hiện thuật toán nhân và bình phương trên vành đa thức

Hình 3.11.

Sơ đồ RTL của mạch khối DeCoding Xem tại trang 23 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan