Tối ưu hóa hệ mật mã RSA với cơ chế RSA CRT trong bảo mật thông tin

MỤC LỤC

NGHIấN CỨU CƠ CHẾ HOẠT ĐỘNG CỦA HỆ MẬT KHểA CÔNG KHAI

  • GIỚI THIỆU VỀ HỆ MẬT VỚI KHểA CễNG KHAI
    • HỆ MẬT MÃ KHểA CễNG KHAI RSA
      • HỆ MẬT MÃ RSA WITH CRT
        • PHÂN TÍCH CƠ CHẾ HOẠT ĐỘNG CỦA HỆ MÃ RSA .1 Phân tích quá trình tạo khóa

          - Các hệ mật mã khóa công khai đƣợc xây dựng dựa trên những bài toán khó như: bài toán logarithm rời rạc trong trường hữu hạn Zp (hệ ElGamal) và bài toán phân tích một số nguyên lớn ra các thừa số nguyên tố (hệ RSA). Khi nhận bản mã, người nhận B cũng thực hiện giải mã hai lần, đầu tiên dùng khóa riêng MB của mình D(MB,C), sau đó dùng khóa công khai KA của người gửi A: R = D(KA,D(MB,C)). - Đối với người thám mã, khi biết được khóa công khai KB, muốn xác định khóa bí mật MB hoặc biết đƣợc khóa công khai KB và bản mã C để khôi phục lại thông điệp R ban đầu: Điều này không thể tính toán nổi.

          Hệ mật RSA được thiết kế làm việc trên trường số ZN, dựa trên cơ sở độ khó giải của bài toán phân tích số nguyên N lớn thành các thừa số nguyên tố p và q khác nhau. Sau đây, ta có bảng chi phí thời gian cần thiết để phân tích những hệ mật mã RSA có kích cỡ số modulo N khác nhau, bằng những thuật toán phân tích tốt nhất hiện nay (Bảng 2.3). Ở đây chi phí tính toán đƣợc tính bằng đơn vị MIPS-Years (đó là số các phép tính đã hoàn thành bởi một máy trong thời gian một năm, với tốc độ khoảng 106 phép tính trên một giây, ta có 1MIPS-Years  245 phép tính).

          Việc phân tích số nguyên N thành các thừa số nguyên tố p, q nhằm mục đích bẻ gãy hệ mật mã RSA là điều khó có thể tính toán nổi, nếu nhƣ trong quá trình thiết kế hệ RSA ta chọn số nguyên N lớn. Số N sử dụng cho modulo RSA hiện nay phải có ít nhất khoảng 232 chữ số thập phân (768-bits) sẽ cho ta một độ an toàn đủ để chống lại những tấn công sử dụng các kỹ thuật phân tích hiện nay. Trong thực tế, nếu trong quá trình thiết kế sử dụng số N có kích cỡ khoảng 1024-bits là rất an toàn, có thể chống lại các kỹ thuật phân tích hiện tại và các kỹ thuật khác phát triển trong tương lai.

          Vì các quá trình mã hóa và giải mã của hệ RSA đều thực hiện các phép tính có các toán hạng là những số nguyên cực lớn ( thông thường các phép toán này đều đƣợc xây dựng hay ”giả lập” lại). Vì lý do đó mà trên thực tế hệ mã khoá công khai RSA ít được dùng vào mục đích mã hóa cho khối lượng dữ liệu lớn, mà chỉ thường đƣợc ứng dụng để mã hóa khối dữ liệu nhỏ. Định lý đồng dƣ Trung Hoa (CRT) cho phép giảm số lần tính toán của quá trình giải mã ở hệ RSA, bằng cách thiết lập một ánh xạ giữa tập Z N và tích Đề-các.

          Cho phép thực hiện các phép tính lũy thừa modulo trên các trường số Zni nhỏ hơn, thay vì phải tính trực tiếp trên trường số Z N lớn như cách tính trong hệ RSA chuẩn. Trường hợp đặc biệt của định lý đồng dư Trung Hoa được áp dụng cho quá trình giải mã ở hệ RSA, khi modulo N là tích của hai số nguyên tố p vàq (N = p *. Trong phần này chỉ trình bày các bước tính toán thêm vào cho quá trình tạo khóa và quá trình giải mã nhờ vào định lý đồng dƣ Trung Hoa, còn quá trình mã hóa thì hoàn toàn giống với hệ RSA chuẩn.

          Quá trình giải mã cũng phải thực hiện việc tính toán liên tiếp để tìm Mi theo công thức: Mi = D(Ci) = Cid (mod N), quá trình này cũng thực hiện trên các số lớn vì ta có d là số lớn. Điều này có ý nghĩa rất quan trọng vì hệ mã RSA cú số lƣợng phộp tớnh lớn, bờn cạnh đú để cú thể thực hiện với cỏc bản rừ cú nội dung lớn thì ta phải giải quyết đƣợc vấn đề này.

          Bảng 2.3: Bảng chi phí thời gian cần thiết để phân tích các số nguyên N
          Bảng 2.3: Bảng chi phí thời gian cần thiết để phân tích các số nguyên N

          MỘT SỐ GIẢI THUẬT XỬ LÝ SỐ HỌC ÁP DỤNG ĐỂ TỐI ƢU HểA QUÁ TRèNH MÃ HểA VÀ GIẢI MÃ

          ỨNG DỤNG GIẢI THUẬT FAST FOURIER TRANSFORM TRONG XỬ LÝ PHÉP NHÂN SỐ LỚN

          • Phép nhân số lớn áp dụng giải thuật FFT .1 Giải thuật

            Về bản chất, phép lũy chính là phép nhân liên tiếp, sử dụng các tính chất đồng dƣ, ta có thể đƣa việc xử lý phép lũy thừa về phép nhân. Do đó, trong đề tài này đi sâu vào việc xử lý phép nhân nhanh số nguyên với các số hạng là các số lớn. Đây là phần kết quả cơ bản của đề tài, về mặt lý thuyết, khi cài đặt thành công các phép xử lý toán học này ta hoàn toàn có thể áp dụng để xây dựng hệ mã RSA.

            Áp dụng các kết quả đã có đƣợc trong việc xử lý các phép toán số học để bước đầu xây dựng thử nghiệm một hệ mã RSA. Trong điều kiện có hạn của luận văn và sự phức tạp của hệ mã RSA, chương trình chỉ dừng ở mức thực nghiệm. Dựa trên lý thuyết này, ta áp dụng để thực hiện việc nhân hai đa thức có bậc nhỏ hơn n.

            Một đa thức có bậc nhỏ hơn m là duy nhất khi nó đƣợc tạo bởi các giá trị cụ thể tại m điểm. Thuật toán FFT là một gợi ý phù hợp với việc lựa chọn cho wk căn của đơn vị. Thuật toán Fast Fourier Transform là phương pháp để tìm ra dạng biến đổi Fourier của dãy số A trong thời gian O(n logn).

            Cách này nhanh hơn với phương pháp truyền thống cần đến thời gian O(n2) với n là lũy thừa của 2. Định nghĩa 2 dãy con kích thước n, A0 chứa các hệ số chẵn còn A1 chứa các hệ số lẻ. Phương phỏp này được Schửnhage và Strassen đề xuất năm 1971 và cho tới nay đõy vẫn là phương pháp nhân hai số lớn nhanh nhất.

            Thực hiện việc nhân nhanh số lớn sử dụng thuật toán FFT áp dụng trong nhân nhanh hai số lớn nhằm biến đổi rời rạc Fourier trong thời gian O(nlogn). Thuật toán sẽ thực hiện rất nhanh do phép dịch bit có tốc độ thực hiện nhanh. Bằng việc sử dụng các phép dịch bit, ta đã tối ƣu hóa việc cài đặt thuật toán nhân nhanh so với cách cài đặt thông thường.

            Sơ đồ 3.1: Thực hiện giải thuật nhân nhanh sử dụng DFT
            Sơ đồ 3.1: Thực hiện giải thuật nhân nhanh sử dụng DFT

            CÀI ĐẶT THỬ NGHIỆM CÁC PHÉP TOÁN VỚI SỐ LỚN

              Ta chọn cơ số này vì máy tính biểu diễn thông tin trong hệ cơ số 2. Việc tối ƣu hóa trong cài đặt sẽ đƣợc thực hiện với các phép dịch bit. Bước 3: Cộng từng vị trí tương ứng của hai chuỗi Sa và Sb từ trái sang phải.

              Đảo ngƣợc Sc (Chỉ lấy từ vị trí 1 đến vị trí cuối cùng khác 0) ta thu đƣợc kết quả trong Sc. Giải thuật trên có thể áp dụng tương tự cho phép trừ, bên cạnh cách tổ chức dữ liệu bằng chuỗi (Thường gặp hạn chế vì chiều dài của chuỗi cũng có giới hạn) ta có thể tổ chức dữ liệu sử dụng Stack. Ở đây ta sử dụng giải thuật nhân nhanh ứng dụng giải thuật Fast Fourier Transform (FFT).

              Giải thuật nhân nhanh hai số nguyên lớn với N chữ số có thể thực hiện đƣợc với độ phức tạp O(n ln(n)ln(ln(n))) khi áp dụng thuật toán FFT.

              ỨNG DỤNG TRONG XÂY DỰNG HỆ MÃ RSA