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
Số trang: 240
Loại file: pdf
Dung lượng: 3.90 MB
Lượt xem: 11
Lượt tải: 0
Xem trước 10 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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!
Nội dung trích xuất từ tài liệu:
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ˆngNh™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æaXét a, b 2 Z. Ta nói b là ˜Óc cıa a, hay a chia h∏t cho bn∏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æaXét a, b 2 Z. Ta nói b là ˜Óc cıa a, hay a chia h∏t cho bn∏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 / 53Mª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 / 53Bài t™pHã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à qvà ph¶n d˜ là r n∏u a = b·q+r vÓi 0 r < b.Bài t™pHãy ch˘ng minh r¨ng các sË q và r trên xác ‡nh duy nhßt bi avà 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ínhgcd(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 / 53Thu™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 ...
Nội dung trích xuất từ tài liệu:
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ˆngNh™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æaXét a, b 2 Z. Ta nói b là ˜Óc cıa a, hay a chia h∏t cho bn∏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æaXét a, b 2 Z. Ta nói b là ˜Óc cıa a, hay a chia h∏t cho bn∏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 / 53Mª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 / 53Bài t™pHã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à qvà ph¶n d˜ là r n∏u a = b·q+r vÓi 0 r < b.Bài t™pHãy ch˘ng minh r¨ng các sË q và r trên xác ‡nh duy nhßt bi avà 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ínhgcd(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 / 53Thu™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 ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Mật mã ứng dụng Mật mã ứng dụng Nhập môn số học thuật toán Tính chất của hàm gcd Thuật toán Euclid mở rộng Thuật toán tính gcdGợi ý tài liệu liên quan:
-
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 trang 23 0 0 -
Bài giảng Mật mã ứng dụng: Hệ mật RSA - Đại học Bách khoa Hà Nội
23 trang 20 0 0 -
Bài giảng Mật mã ứng dụng: Mã khối - Đại học Bách khoa Hà Nội
150 trang 19 0 0 -
Bài giảng Mật mã ứng dụng: Mã dòng - Đại học Bách khoa Hà Nội
34 trang 18 0 0 -
Thuật toán số học: Phần 2
69 trang 18 0 0 -
Thuật toán số học: Phần 1
88 trang 18 0 0 -
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 trang 17 0 0 -
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 trang 15 0 0 -
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 trang 13 0 0 -
Bài giảng Nhập môn Số học thuật toán: Chương 3, 4, 5 - Nguyễn Đạt Thông
45 trang 13 0 0