Phân tích các phép toán học sử dụng trong hệ mật mã multi-prime RSA

Một phần của tài liệu Thiết kế và cài đặt thư viện số lớn ứng dụng trong mật mã (Trang 74 - 75)

Như cơ chế hoạt động của RSA mở rộng với ba số nguyên tố p, qr đã được trình bày tại Mục 1.8. Ta mô hình hóa cơ chế multi-prime RSA như sau:

Tính n = pqr

Tính φ(n) = (p-1)(q-1)(r-1) Chọn ba số nguyên tố

p,q và r

Chọn khóa công khai e

0 < e < φ(n), gcd(e, φ(n)) = 1 Chọn khóa riêng d 1 < d < φ(n), de 1(mod φ(n)) e d Bản rõ m (mod )  e c m n (mod )  d m c n Bản mã C Bản rõ m

Hình 3.1. Cơ chế hoạt động của hệ mật mã multi-prime RSA

Qua lưu đồ trên ta phân tích các phép xử lý toán học mà multi-prime RSA sử dụng

3.1.1. Chọn ba số nguyên tố đủ lớn phân biệt p, qr

Ta sẽ dùng giải thuật Miller-Rabin đã trình bày tại Algorithm 1.6 luận văn này để kiểm tra và sinh ba số nguyên tố lớn.

3.1.2. Tính n = pqr

Toán tử nhân ba số lớn p, q, r đã được sử dụng qua phương thức nạp chồng toán tử. Hàm npqr là hàm một chiều, nếu p, q, r là các số lớn và có kích cỡ tương đương nhau cỡ 1024 bit trở lên thì n rất khó để phân tích ngược ra các số p, qr.

60

3.1.3. Tính phi hàm 𝝋(n) = (p-1)(q-1)(r-1)

Tương tự ở Bước 2, ở bước này tiếp tục sử dụng toán tử nhân và toán tử trừ. Có được ( )n (p1)(q1)(r1) là do ta sử dụng tính chất của Phi hàm Euler trong

Chương 1 luận văn này.

3.1.4. Tính khóa công khai e

Khóa công khai e được chọn sao cho 0 e ( )n và gcd( , ( ))en 1. Tức e là nguyên tố cùng nhau với ( )n . Chi tiết về cách tính e sẽ được trình bày ở mục dưới đây.

3.1.5. Tính khóa bí mật d

Ta tính khóa bí mật d sao cho de1(mod ( )) n . Tức là d là phần tử nghịch đảo của e trong modulo 𝜑(n) hayd x. ( ) 1n

e

 

 . Áp dụng thuật toán Euclid mở rộng để tìm

d đã được trình bày theo Algorithm 1.8. Chi tiết về cách tính d được trình bày ở mục dưới đây của chương này.

3.1.6. Mã hóa và giải mã

Theo lưu đồ trên việc mã hóa và giải mã thông qua khóa ed. Kết quả của việc mã hóa và giải là việc tính lũy thừa theo modulo (Modular Exponentiation). Việc tính lũy thừa theo modulo sẽ được trình bày ngay sau đây.

Ngoài ra, còn có việc thực hiện chuyển đổi bản rõ ban đầu M thành m để thực hiện mã hóa c và việc chuyển đổi từ bản mã c thành m rồi chuyển thành bản rõ ban đầu M.

Một phần của tài liệu Thiết kế và cài đặt thư viện số lớn ứng dụng trong mật mã (Trang 74 - 75)