Bài giảng Mật mã ứng dụng: Nhập môn số học thuật toán - Đại học Bách khoa Hà Nội
lượt xem 7
download
Bài giảng "Mật mã ứng dụng: Nhập môn số học thuật toán" trình bày các nội dung chính sau đây: Tính chất của hàm gcd; Thuật toán Euclid mở rộng; Thuật toán tính gcd;... Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Mật mã ứng dụng: Nhập môn số học thuật toán - Đại học Bách khoa Hà Nội
- M™t mã ˘ng dˆng Nh™p môn sË hÂc thu™t toán 1 / 53
- Tài liªu tham kh£o • J. Hoffstein, J. Pipher, J. H. Silverman, An Introduction to Mathematical Cryptography, Springer-Verlag – Undergraduate Texts in Mathematics, 2nd Ed., 2014. • T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to Algorithms, Third Edition (3rd ed.). The MIT Press. 2009. • H. H. Khoái, Nh™p môn sË hÂc thu™t toán 2 / 53
- K˛ hiªu • N = {1, 2, 3, . . . } • Z = {. . . , 2, 1, 0, 1, 2, . . . } 3 / 53
- ‡nh nghæa Xét a, b 2 Z. Ta nói b là ˜Óc cıa a, hay a chia h∏t cho b n∏u có mÎt sË nguyên c sao cho a = bc. Ta vi∏t b | a ∫ chø a chia h∏t cho b. N∏u a không chia h∏t cho b thì ta vi∏t b - a. 4 / 53
- ‡nh nghæa Xét a, b 2 Z. Ta nói b là ˜Óc cıa a, hay a chia h∏t cho b n∏u có mÎt sË nguyên c sao cho a = bc. Ta vi∏t b | a ∫ chø a chia h∏t cho b. N∏u a không chia h∏t cho b thì ta vi∏t b - a. Ví dˆ • 847 | 485331 vì 485331 = 847 · 573. • 355 - 259943 vì 259943 = 4 / 53
- Mªnh ∑ Xét a, b, c 2 Z. 1 N∏u a | b và b | c, thì a | c. 2 N∏u a | b và b | a, thì a = ±b. 3 N∏u a | b và a | c, thì a | (b + c) và a | (b c). 5 / 53
- Bài t™p Hãy ch˘ng minh mªnh ∑ tr˜Óc. 6 / 53
- ‡nh nghæa • ◊Óc chung cıa hai sË nguyên a và b là sË nguyên d th‰a mãn: d|a và d | b. • Ta k˛ hiªu gcd(a, b) là ˜Óc chung lÓn nhßt cıa a và b. 7 / 53
- ‡nh nghæa • ◊Óc chung cıa hai sË nguyên a và b là sË nguyên d th‰a mãn: d|a và d | b. • Ta k˛ hiªu gcd(a, b) là ˜Óc chung lÓn nhßt cıa a và b. Ví dˆ • gcd(12, 18) = 6 vì 6 | 12 và 6 | 18 và không có sË nào lÓn hÏn có tính chßt này. • gcd(748, 2014) = 44 vì các ˜Óc cıa 748 = {1, 2, 4, 11, 17, 22, 34, 44, 68, 187, 374, 748}, các ˜Óc cıa 2024 = {1, 2, 4, 8, 11, 22, 23, 44, 46, 88, 92, 184, 253, 506, 1012, 2024}. 7 / 53
- MÎt sË tính chßt cıa hàm gcd gcd(a, b) = gcd(b, a) gcd(a, b) = gcd( a, b) gcd(a, 0) = |a| gcd(a, ka) = |a| vÓi mÂi k 2 Z. 8 / 53
- ‡nh nghæa (Chia lßy d˜) Xét a, b là các sË nguyên d˜Ïng. Ta nói a chia cho b có th˜Ïng là q và ph¶n d˜ là r n∏u a = b·q+r vÓi 0 r < b. Bài t™p Hãy ch˘ng minh r¨ng các sË q và r trên xác ‡nh duy nhßt bi a và b. 9 / 53
- Thu™t toán tính gcd(a, b) • Chia a cho b ta ˜Òc a = b·q+r vÓi 0 r < b. • Áp dˆng Øng th˘c gcd(a, b) = gcd(b, r). 10 / 53
- Ví dˆ: Tính gcd(2024, 748) 2024 = 748 · 2 + 528 748 = 528 · 1 + 220 528 = 220 · 2 + 88 220 = 88 · 2 + 44 gcd = 44 88 = 44 · 2 + 0 11 / 53
- ‡nh l˛ (Thu™t toán Euclid) Xét a, b là hai sË nguyên d˜Ïng vÓi a b. Thu™t toán sau ây tính gcd(a, b) sau mÎt sË h˙u h§n b˜Óc. 1 ∞t r0 = a và r1 = b. 2 ∞t i = 1. 3 Chia ri 1 cho ri , ta ˜Òc ri 1 = ri · qi + ri+1 vÓi 0 ri+1 < ri . 4 N∏u ri+1 = 0, v™y thì ri = gcd(a, b) và thu™t toán k∏t thúc. 5 Ng˜Òc l§i, ri+1 > 0, v™y thì ∞t i = i + 1 và quay l§i B˜Óc 3. 12 / 53
- ‡nh l˛ Phép chia (B˜Óc 3) cıa Thu™t toán Euclid th¸c hiªn nhi∑u nhßt log2 (b) + 2 l¶n. 13 / 53
- Thu™t toán Euclid (d§ng ª quy) EUCLID(a, b) if b == 0 return a else return EUCLID(b, a mod b) 14 / 53
- Thu™t toán Euclid m rÎng • Thu™t toán Euclid có th∫ m rÎng ∫ tìm thêm mÎt sË thông tin. • Cˆ th∫, chúng ta m rÎng thu™t toán ∫ tính thêm hª sË x, y th‰a mãn d = gcd(a, b) = a x + b y. • Các hª sË x, y có th∫ âm ho∞c b¨ng 0. Các hª sË này s≥ có ích sau này khi tích ph¶n t˚ ngh‡ch £o trong sË hÂc modun. 15 / 53
- Thu™t toán Euclid m rÎng • Input : C∞p sË nguyên d˜Ïng (a, b) • Output: BÎ ba (d, x, y) th‰a mãn d = gcd(a, b) = a x + b y. EXTENDED-EUCLID(a, b) if b == 0 return (a, 1, 0) else (d 0 , x 0 , y 0 ) = EXTENDED-EUCLID(b, a mod b) (d, x, y) = (d 0 , y 0 , x 0 ba/bc y 0 ) return (d, x, y) 16 / 53
- Tính úng ≠n cıa thu™t toán • Thu™t toán tìm (d, x, y) th‰a mãn d = gcd(a, b) = a x + b y • N∏u b = 0, v™y thì d = a = a · 1 + b · 0. • N∏u b 6= 0, thu™t toán EXTENDED-EUCLID s≥ tính (d 0 , x 0 , y 0 ) th‰a mãn d 0 = d = gcd(b, a mod b) = b x 0 + (a mod b) y 0 • Và v™y thì d = b0 x 0 + (a bba/bc) y 0 = a y 0 + b(x 0 ba/bc y 0 ) 17 / 53
- Ví dˆ a b ba/bc d x y 99 78 1 3 11 14 78 21 3 3 3 11 21 15 1 3 2 3 15 6 2 3 1 2 6 3 2 3 0 1 3 0 3 1 0 • MÈi dòng cıa b£ng mô t£ mÎt m˘c ª quy: các giá tr‡ ¶u vào a và b, giá tr‡ tính ba/bc, và giá tr‡ tr£ v∑ d, x, y. • d, x, y tr£ v∑ tr thành bÎ ba d 0 , x 0 , y 0 cıa m˘c ti∏p theo. • LÌi gÂi thı tˆc EXTENDED-EUCLID(99,78) tr£ v∑ (3, 11, 4) th‰a mãn gcd(99, 78) = 3 = 99 · ( 11) + 78 · 14. 18 / 53
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Mật mã và ứng dụng: Hàm băm, chữ ký số - Trần Đức Khánh
45 p | 175 | 26
-
Bài giảng Mật mã và ứng dụng: Hệ mật mã cổ điển - Trần Đức Khánh (tt)
41 p | 134 | 21
-
Bài giảng Mật mã và ứng dụng: Hệ mật mã khóa công khai (bất đối xứng) - Trần Đức Khánh
36 p | 156 | 17
-
Bài giảng Mật mã và ứng dụng: Quản lý khóa, giao thức mật mã - Trần Đức Khánh
17 p | 102 | 10
-
Bài giảng Mật mã và ứng dụng - Trần Đức Khánh
27 p | 133 | 8
-
Bài giảng Mật mã và ứng dụng: Quản lý khóa, giao thức mật mã - Trần Đức Khánh (tt)
26 p | 108 | 8
-
Bài giảng Mật mã ứng dụng: Giao thức trao đổi khoá - Đại học Bách khoa Hà Nội
37 p | 7 | 6
-
Bài giảng Mật mã ứng dụng: Hàm băm kháng xung đột - Đại học Bách khoa Hà Nội
38 p | 12 | 6
-
Bài giảng Mật mã ứng dụng: Chữ ký số - Đại học Bách khoa Hà Nội
34 p | 7 | 5
-
Bài giảng Mật mã ứng dụng: Bài toán logarit rời rạc và Diffie-Hellman - Đại học Bách khoa Hà Nội
50 p | 13 | 5
-
Bài giảng Mật mã ứng dụng: Hệ mật RSA - Đại học Bách khoa Hà Nội
23 p | 13 | 5
-
Bài giảng Mật mã ứng dụng: Mã xác thực thông điệp - Đại học Bách khoa Hà Nội
51 p | 11 | 5
-
Bài giảng Mật mã ứng dụng: Mã khối - Đại học Bách khoa Hà Nội
150 p | 10 | 5
-
Bài giảng Mật mã ứng dụng: Lịch sử mật mã - Đại học Bách khoa Hà Nội
58 p | 9 | 5
-
Bài giảng Mật mã ứng dụng: Giới thiệu sơ lược về mật mã và tiền mật mã - Đại học Bách khoa Hà Nội
74 p | 7 | 5
-
Bài giảng Mật mã ứng dụng: Hệ mã có xác thực - Đại học Bách khoa Hà Nội
45 p | 9 | 4
-
Bài giảng Mật mã ứng dụng: Mã dòng - Đại học Bách khoa Hà Nội
34 p | 8 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn