Tải bản đầy đủ (.pptx) (16 trang)

Báo cáo môn Mật Mã và An Toàn Dữ Liệu TÍNH LŨY THỪA VỚI SỐ MŨ LỚN THEO MODULO

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.48 MB, 16 trang )

TÍNH LŨY THỪA VỚI SỐ MŨ LỚN THEO
MODULO
Môn Học: Mậ Mã và An Toàn Dữ Liệu – Thầy Trịnh Nhật Tiến
Học Viên: Ma Trọng Khôi
1
Nội Dung

Giới thiệu

Ứng dụng

Mã hóa trong thuật toán RSA

Giải mã trong thuật toán RSA

Kiểm tra số nguyên tố

Thuật toán

Thực nghiệm
2
Giới Thiệu

Bài toán:
a
d
≡ ? (modulo N)

a, d, N là các số nguyên dương rất lớn
3
Ứng Dụng



RSA

n = p
1
* p
2
, p
1
, p
2
là số nguyên tố rất lớn

e là số nguyên dương, gcd(n, e) = 1


(n) =

(p1)

(p2) = (p
1
- 1)(p
2
- 1)

d * e ≡ 1 ≡ 1 + k *

(n) (modulo


(n))

Mã hóa: m
e
≡ c (modulo n)

Giải mã: c
d
≡ (m
e
)
d
≡ m * (m

(n)
)
k
≡ m (modulo n)

Kiểm tra số nguyên tố: a
n-1
≡ 1 (modulo n)
4
a
d
modulo N

Tính thông thường

Phân tích thành nhân tử.

VD: a
55
≡ (a
5
)
11
(modulo n)

Vấn đề:

Số lượng phép nhân lớn

Phép Tính Với Số lớn

Hướng giải quyết:

Chia để trị  số phép nhân là ít nhất

(a * b) mod n = [(a mod n) * (b mod n)] mod n
5
a
d
modulo N – Phương Pháp Nhị Phân

Biểu diễn d ở dạng nhị phân:

c = a
169
mod n = (a
128

* a
32
* a
4
* a
1
) mod n
6
d 1 0 0 1 0 1 0 1
c a
1
- - a
8
- a
32
- a
128
a
1
a
2
a
4
a
8
a
16
a
32
a

64
a
128
Giả Mã

Độ phức tạp: O(log
2
(d))

Số phép nhân trung bình (1/2 * log
2
(d))
7
Phương Pháp m-ary



Trường hợp đặc biệt: m = 2
k

Ví dụ: d = 250 = 11 11 10 10

Tính a
0
, a
1
, a
2
, a
3


số phép nhân: 2 + 6 + 3 = 11

; [2]
8
STT Bits Bước a Bước b
1 11 a
3
mod n a
3
mod n
2 11 (a
3
)
4
mod n a
12
* a
3
mod n
3 10 (a
15
)
4
mod n a
60
*a
2
mod n
4 10 (a

62
)
4
mod n a
248
*a
2
mod n
d
Cửa sổ trượt

Độ dài cố định (w):

Đoạn bit 0 có chiều dài tùy ý



Đoạn bit khác 0 có độ dài w

Ví dụ: d = 3665 = 111 00 101 0 001
9
STT Bits Bước a Bước b
1 111 a
7
mod n a
7
mod n
2 00 (a
7
)

4
mod n a
28
mod n
3 101 (a
28
)
8
mod n a
224
*a
5
mod n
4 0 (a
229
)
2
mod n a
458
mod n
5 001 (a
458
)
8
mod n a
3664
*a
1
mod n
Cửa sổ trượt


Độ dài biến thiên (w,q):

Đoạn bit 0 có chiều dài ≥ q

Đoạn bit khác 0 có chiều dài ≤ w

Ví dụ: w = 5, q = 2, d = 11173 = 101 0 11101 00 101
10
Cây Lũy Thừa
11
Cây Lũy Thừa

Giả thiết:

đã dựng được cây có độ cao k

nút e
i
là có độ cao là k

Dựng các nút có độ cao k+1:

e
i
+ a
1
, e
i
+ a

2
, …, e
i
+ a
k

a
1
= 1, a
k
= e
i
12
Chuỗi cộng

Chuỗi cộng: a
0
, a
1
, …, a
r

a
0
= 1,

a
k
= a
i

+ a
j
(i, j ≤ k)

Chuỗi cộng ngắn nhất tính ra d?
Ví du: d = 55
Nhị Phân: 1 2 3 4 7 8 16 23 32 55
Power tree: 1 2 3 6 12 13 26 27 54 55
13
References

[1] Element of Number Theory

[2] Daniel M. Gordon. A survey of fast exponentiation methods, Dec 30, 1997
14
Thank You!

×