1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI TOÁN LOGARIT RỜI RẠC VÀ DIFFIE-HELLMAN

56 68 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Bài Toán Logarit Rời Rạc Và Diffie-Hellman
Tác giả Phạm Hoàng Minh
Trường học Viện Khoa Học Mật Mã
Thể loại báo cáo thực tập
Năm xuất bản 2020
Thành phố Hà Nội
Định dạng
Số trang 56
Dung lượng 394,97 KB

Nội dung

VIỆN KHOA HỌC - CÔNG NGHỆ MẬT MÃ PHÂN VIỆN KHOA HỌC MẬT MÃ —————————————- PHẠM HỒNG MINH BÀI TỐN LOGARIT RỜI RẠC VÀ DIFFIE-HELLMAN BÁO CÁO THỰC TẬP Hà Nội - 2020 VIỆN KHOA HỌC - CÔNG NGHỆ MẬT MÃ PHÂN VIỆN KHOA HỌC MẬT MÃ —————————————- PHẠM HOÀNG MINH BÀI TOÁN LOGARIT RỜI RẠC VÀ DIFFIE-HELLMAN BÁO CÁO THỰC TẬP Hà Nội - 2020 MỤC LỤC MỤC LỤC Mục lục Lời mở đầu Kiến thức 1.1 1.2 3 Một số định lý Lý thuyết số Tổng quan lý thuyết nhóm Bài toán logarit rời rạc Bài tốn logarit rời rạc khó đến đâu? Trao đổi khóa Diffie-Hellman 12 Hệ mã hóa cơng khai ElGamal 14 Thuật toán va chạm cho toán logarit rời rạc 18 Định lý thặng dư Trung Hoa 7.1 Giải phương trình đồng dư với modulo hợp số 20 23 Thuật toán Pohlig-Hellman 24 Kết luận 31 32 Bài tập MỤC LỤC MỤC LỤC LỜI MỞ ĐẦU Trao đổi khóa Diffie–Hellman phương pháp trao đổi khóa phát minh sớm mật mã học Phương pháp trao đổi khóa Diffie–Hellman cho phép hai bên (người, thực thể giao tiếp) thiết lập khóa bí mật chung để mã hóa liệu sử dụng kênh truyền thông không an tồn mà khơng cần có thỏa thuận trước khóa bí mật hai bên Khóa bí mật tạo sử dụng để mã hóa liệu với phương pháp mã hóa khóa đối xứng Giao thức công bố Whitfield Diffie Martin Hellman vào năm 1976 Năm 2002, Hellman đề xuất thuật tốn nên gọi trao đổi khóa Diffie–Hellman–Merkle để ghi nhận đóng góp Ralph Merkle phát minh lĩnh vực mật mã hóa khóa cơng khai Mặc dù giao thức trao đổi khóa Diffie–Hellman thân giao thức trao đổi khóa ẩn danh (khơng xác thực), đưa tảng sở cho nhiều loại giao thức xác thực sử dụng để tạo nên bí mật chuyển tiếp hồn hảo chế độ ngắn hạn giao thức Transport Layer Security (EDH DHE tùy theo mã hóa) Phương pháp áp dụng sau cho thuật tốn RSA Tơi lãnh đạo Phân viện giao tìm hiểu Chương "An introduction to Mathematical Cryptography"của tác giả Jeffrey Hoffstein, Jill Pipher, J.H Silverman Báo cáo tơi giao tìm hiểu từ tháng năm 2020 báo cáo vào tháng năm 2020 Tuy nhiên, đợt dịch Covid-19 nên phải đến tháng tơi báo cáo Trong báo cáo này, tơi tìm hiểu tốn logarit rời rạc tính khó nó, từ tính bảo mật trao đổi khóa Diffie-Hellman Tiếp theo tơi tìm hiểu tốn Diffie-Hellman trao đổi khóa ElGamal, hệ mã hóa cơng khai dựa tính khó tốn Diffie-Hellman Sau tơi tìm hiểu hai thuật tốn để giải toán logarit rời rạc Thuật toán bước nhỏ-bước lớn Shanks Thuật toán Pohlig-Hellman giải toán logarit rời rạc dựa Định lý thặng dư Trung Hoa Báo cáo bao gồm 54 trang, chia thành phần, phần đầu số kiến thức nhóm định lý Lý thuyết số cần thiết để sử dụng phần sau Phần phần giới thiệu tốn logarit rời rạc độ khó toán DLP Phần giới thiệu trao đổi khóa Diffie-Hellman Phần giới thiệu hệ mã hóa ElGamal Phần phần đưa hai thuật toán để giải toán logarit rời rạc thuật toán Shank thuật toán Pohlig-Hellman Phần phần tập Tôi xin cảm ơn lãnh đạo Phân viện cho vào thực tập khoảng thời gian từ tháng 11 năm 2019 đến tháng năm 2020 Tôi xin cảm ơn cán Phân viện nhiệt tình giúp đỡ tơi trình làm báo cáo 1 KIẾN THỨC CƠ BẢN Kiến thức 1.1 Một số định lý Lý thuyết số Dưới số mệnh đề, định lý cần thiết sử dụng phần sau báo cáo Định lý 1.1 (Thuật toán Euclid mở rộng) Cho a b số ngun dương Khi phương trình au + bv = gcd( a, b) ln có nghiệm nguyên u v Nếu (u0 , v0 ) nghiệm bất kỳ, nghiệm có dạng u = u0 + b.k gcd( a, b) v = v0 − a.k gcd( a, b) với k ∈ Z Định lý 1.2 (Định lý nhỏ Fermat) Cho p số nguyên tố a số nguyên Khi ( mod p) p a, a p −1 = ( mod p) p| a Định lý 1.3 (Định lý nghiệm nguyên thủy) Cho p số nguyên tố Khi đó, tồn phần tử g ∈ F∗p mà lũy thừa phần tử F∗p , nghĩa F∗p = {1, g, g2 , , g p−2 } Các phần tử với tính chất gọi nghiệm nguyên thủy F∗p phần tử sinh F∗p Chúng phần tử F∗p có cấp p − 1.2 Tổng quan lý thuyết nhóm Trong phần này, ta giới thiệu ngắn gọn số khái niệm giúp ta hiểu logarit rời rạc Ở trên, ta nói chút lũy thừa phần tử F∗p Do lũy thừa đơn giản phép nhân liên tiếp, điểm tốt để bắt đầu Ta muốn nhấn mạnh số tính chất quan trọng phép nhân F∗p tính chất sử dụng nhiều Các tính chất gồm có: • Tồn phần tử ∈ F∗p thỏa mãn · a = a với a ∈ F∗p 1.2 Tổng quan lý thuyết nhóm KIẾN THỨC CƠ BẢN • Mọi phần tử a ∈ F∗p có phần tử nghịch đảo a−1 ∈ F∗p thỏa mãn a · a−1 = a−1 · a = • Phép nhân có tính kết hợp: a · (b · c) = ( a · b) · c với a, b, c ∈ F∗p • Phép nhân có tính giao hoán: a·b = b·a với a, b ∈ F∗p Giả sử thay phép nhân F∗p , ta thay phép cộng F p Ta sử dụng ký hiệu thay cho − a thay cho ký hiệu a−1 Khi đó, tính chất vừa nêu Tập hợp phép toán thể tương tự với phép nhân phép cộng biết đến rộng rãi Do đó, ta đưa khái niệm tổng quát nhóm Định nghĩa 1.4 Một nhóm gồm tập hợp G, phép toán, ký hiệu , cách kết hợp hai phần tử a, b ∈ G để thu phần tử a b ∈ G Phép tốn cần có tính chất sau đây: (a) Quy tắc phần tử trung hòa Tồn phần tử e ∈ G cho e a=a e=a với a ∈ G (b) Quy tắc lấy nghịch đảo Với a ∈ G, tồn (duy nhất) phần tử a−1 ∈ G cho a a−1 = a−1 a = e (c) Quy tắc kết hợp Với a, b, ∈ G, ta có a (b c) = ( a b) c Hơn nữa, nhóm phép tốn thỏa mãn thêm điều kiện a b=b a với a, b, ∈ G, nhóm gọi nhóm giao hốn nhóm abel Nếu G có hữu hạn phần tử, ta nói G nhóm hữu hạn Cấp G số phần tử G, ký hiệu | G | #G 1.2 Tổng quan lý thuyết nhóm KIẾN THỨC CƠ BẢN Ví dụ 1.5 (i) Cho G = F∗p phép nhân modulo thơng thường Khi đó, phần tử đơn vị e = Khi G nhóm hữu hạn cấp p − (ii) G = Z/nZ, phép cộng modulo Khi đó, phần tử đơn vị e = nghịch đảo a − a G nhóm hữu hạn cấp n (iii) Một ví dụ nhóm khơng giao hốn G= a b c d : a, b, c, d ∈ R ad − bc = với phép nhân ma trận biết Phần tử đơn vị e = 0 phép nghịch đảo cho công thức quen thuộc  a b c d −1  d −b  − bc ad − bc  =  ad− c a  ad − bc ad − bc Chú ý G không giao hốn, lấy ví dụ 1 1 1 = 1 1 1 Cho g phần tử nhóm G x số nguyên dương Khi g x có nghĩa ta áp dụng phép tốn nhóm x lần cho phần tử g, gx = g · · · g x lần Ví dụ, lũy thừa g x nhóm F∗p có nghĩa thơng thường, nhân g với x lần Nhưng "lũy thừa"g x nhóm Z/nZ nghĩa lấy g cộng với x lần Thơng thường, cộng ta viết x · g Ta đưa định nghĩa g x x số dương Do đó, x số nguyên âm, ta định nghĩa g x = ( g −1 ) | x | Với x = 0, ta đặt g0 = e, phần tử trung hòa Định nghĩa 1.6 Cho G nhóm cho a ∈ G phần tử nhóm Giả sử tồn số nguyên dương d với tính chất ad = e Số d nhỏ thỏa mãn tính chất gọi cấp a Nếu không tồn số d, ta nói a có cấp vơ hạn TIếp theo, ta đưa hai mệnh đề minh họa tính chất quan trọng cấp phần tử nhóm BÀI TỐN LOGARIT RỜI RẠC Mệnh đề 1.7 Cho G nhóm hữu hạn Khi đó, phần tử G có cấp hữu hạn Hơn nữa, a ∈ G có cấp d ak = e d|k Mệnh đề 1.8 (Định lý Lagrange.) Cho G nhóm hữu hạn cho a ∈ G Khi đó, cấp a chia hết cấp G Một cách xác hơn, cho n = | G | cấp G d cấp a Khi an = e d|n Chứng minh Ta chứng minh với trường hợp G nhóm giao hốn Do G hữu hạn, ta liệt kê phần tử G = { g1 , , g n } Nhân phần tử G với a ta thu tập hợp Sa S a = { a g1 , , a g n } Ta thấy phần tử Sa phân biệt Thật vậy, giả sử a gi = a g j Khi đó, ta nhân bên trái đẳng thức với a−1 ta suy gi = g j Do đó, Sa chứa n phần tử phân biệt số lượng phần tử số phần tử G Vậy G = Sa Khi đó, ta nhân tất phần tử Sa với nhân tất phần tử G với Do ( a g1 ) · · · ( a g n ) = g1 · · · g n Do tính giao hốn, ta xếp lại thừa số phép nhân vế trái thu a n g1 · · · g n = g1 · · · g n Tiếp theo, nhân bên phải hai vế phần tử ( g1 gn )−1 suy an = e Bài toán logarit rời rạc Bài toán logarit rời rạc toán toán học lên q trình mã hóa mật mã học, bao gồm phiên mod p mô tả phần phiên đường cong elliptic Phép xây dựng khóa cơng khai đề xuất DiffieHellman, dựa tốn logarit rời rạc nhóm hữu hạn F p Ta nhắc lại F p trường với số phần tử số nguyên tố Để thuận tiện, ta sử dụng ký hiệu F p thay cho Z/pZ cho trường này, ta sử dụng ký hiệu cho phần tử F p ký hiệu đồng dư cho phần tử Z/pZ BÀI TOÁN LOGARIT RỜI RẠC Cho p số nguyên tố (đủ lớn) Định lý 1.3 cho ta biết tồn phần tử nguyên thủy g: Mọi phần tử khác không F p lũy thừa g Cụ thể, g p−1 = theo Định lý nhỏ Fermat (Định lý 1.2), khơng có lũy thừa nhỏ g Một cách tương đương, phần tử 1, g, g2 , , g p−2 ∈ F∗p toàn phần tử F∗p Định nghĩa 2.1 Cho g nghiệm nguyên thủy F p h phần tử khác khơng F p Bài tốn logarit rời rạc (LRR) tốn tìm lũy thừa x cho gx ≡ h ( mod p) Số x gọi logarit rời rạc h số g ký hiệu logg (h) Nhận xét 2.2 Một khái niệm lâu đời cho logarit rời rạc số, ký hiệu indg (h) Khái niệm số thường dùng lý thuyết số Nó thuận tiện có nhầm lẫn logarit thơng thường logarit rời rạc Ví dụ, đại lượng log2 thường sử dụng báo cáo Nhận xét 2.3 Bài toán logarit rời rạc toán biết đến rộng rãi, ta tìm số lũy thừa nguyên x cho g x = h Tuy nhiên, có nghiệm, tồn vơ số nghiệm, theo Định lý nhỏ Fermat (Định lý 1.2) g p−1 ≡ 1( mod p) Do x nghiệm toán g x = h x + k( p − 1) nghiệm với giá trị k, g x+k( p−1) = g x ( g p−1 )k ≡ h.1k ≡ h( mod p) Do logg (h) định nghĩa sai khác phép cộng trừ số bội lần ( p − 1) Nói cách khác, logg (h) định nghĩa modulo p − Khơng khó để xác thực logg cho ta hàm định nghĩa tốt logg : F∗p → Z ( p − 1)Z (2.1) Thật vậy, giả sử logg h = a logg h = b, đó, ta suy g a = gb (= h) Do g a−b = e với e phần tử trung hịa nhóm Suy | g| | a − b Tuy nhiên, ta lại có | g| = p − 1, ( p − 1)|( a − b) Vậy a − b ≡ ( mod p − 1) hay a ≡ b ( mod p − 1) BÀI TOÁN LOGARIT RỜI RẠC KHÓ ĐẾN ĐÂU? Vậy ánh xạ xác định Z/( p − 1)Z Trong số trường hợp, tính rời rạc, ta nói đến logarit rời rạc số nguyên x nằm p − thỏa mãn đẳng thức đồng dư g x ≡ h( mod p) Nhận xét 2.4 Ta khơng khó khăn để chứng minh logg ( ab) = logg ( a) + logg (b) với a, b ∈ F∗p Do ta gọi logg ( a) logarit hợp lý, chuyển phép nhân thành phép cộng theo cách hàm logarit thơng thường Trong thuật ngữ tốn học, logarit rời rạc logg đẳng cấu nhóm từ F∗p vào Z/( p − 1)Z Nhận xét 2.5 Khẳng định ta toán logarit rời rạc bao gồm giả thiết g phần tử nguyên thủy modulo p, điều không thật cần thiết Về mặt tổng quát, với g ∈ F∗p h ∈ F∗p , toán logarit rời rạc toán xác định lũy thừa x thỏa mãn g x ≡ h( mod p), x tồn Tổng quát hơn, thay lấy phần tử khác không trường hữu hạn F p nhân chúng với để tạo nên lũy thừa, ta lấy phần tử nhóm sử dụng phép tốn nhóm thay phép nhân Điều dẫn đến dạng tổng quát toán logarit rời rạc Định nghĩa 2.6 Cho G nhóm phép tốn nhóm ký hiệu ký hiệu Bài toán logarit rời rạc cho G ta toán với hai phần tử g h cho trước G, ta tìm số nguyên x thỏa mãn g g · · · g = h x lần Bài toán logarit rời rạc khó đến đâu? Cho nhóm G hai phần tử g, h ∈ G, toán logarit rời rạc yêu cầu tìm lũy thừa x cho g x = h Vậy ta nói tính khó tốn nghĩa gì? Làm định lượng tính "khó"? Một phép đo tính khó tự nhiên xấp xỉ số lượng phép toán cần thiết để người máy tính giải tốn sử dụng thuật tốn hiệu biết đến Ví dụ, giả sử ta đếm q trình tính tốn g x phép tốn Khi cách tiếp cận "vét cạn"để giải tốn logarit rời rạc ta tính g x với x = 1, 2, 3, so sánh giá trị với h Nếu g có cấp n, thuật tốn đảm bảo tìm nghiệm nhiều n phép tốn, n lớn, ví dụ n > 280 , thuật tốn khơng thực tế cách tính lũy thừa với cơng cụ BÀI TẬP (d) Chỉ ví dụ G nhóm khơng giao hốn, G [d] khơng thiết nhóm BÀI LÀM (a) Ta có ( g−1 )d = g−d = ( gd )−1 = e−1 = e Trong dấu thứ xảy g ∈ G [d] (b) Giả sử g h nằm G [d], ta có ( gh)d = gd hd = e.e = e Trong dấu thứ xảy g h nằm G [d] (c) Hiển nhiên e nằm G [d] Từ phần (a) và(b) ta suy G [d] nhóm G nhóm giao hốn (d) Ta lấy nhóm S3 lấy τ = (123), σ = (132) Khi τ = σ3 = e Do τ, σ ∈ S3 [3] Tuy nhiên στ = (12) phần tử cấp S3 , στ ∈ / S3 [3] Bài tập 2.13 Cho G H nhóm Một hàm φ : G → H gọi đồng cấu nhóm thỏa mãn φ( g.h) = φ( g).φ(h) với g, h ∈ G (a) Cho eG phần tử trung hòa G, e H phần tử trung hòa H, cho g ∈ G Chứng minh φ(eG ) = e H φ ( g −1 ) = φ ( g ) −1 (b) Cho G nhóm giao hốn Chứng minh ánh xạ φ : G → G định nghĩa φ( g) = g2 đồng cấu (c) Câu hỏi tương tự câu (b) với φ( g) = g−1 BÀI LÀM 40 BÀI TẬP (a) Với g ∈ G, ta có φ( g) = φ( g.eG ) = φ( g).φ(eG ) Giản ước hai vế ta suy φ(eG ) = e H Mặt khác, ta có φ(eG ) = φ( g.g−1 ) = φ( g).φ( g−1 ) Chuyển vế ta có φ( g−1 ) = (φ( g))−1 (b) Giả sử g h G Khi đó, ta có φ( gh) = ( gh)2 = g2 h2 = φ( g).φ(h) Trong đó, dấu thứ xảy G nhóm giao hoán Vậy φ đồng cấu (c) Với g h nằm nhóm G, ta có φ( gh) = ( gh)−1 = h−1 g−1 = g−1 h−1 Trong dấu cuối xảy G nhóm giao hốn Bài tập 2.14 Chứng minh ánh xạ sau đồng cấu (a) Ánh xạ φ : Z → Z/NZ chuyển a ∈ Z thành a mod N Z/NZ (b) Ánh xạ φ : R → GL2 (R) định nghĩa φ( a) = a a −1 (c) Ánh xạ logarit rời rạc logg : F∗p → Z/( p − 1)Z, với g nghiệm nguyên thủy modulo p BÀI LÀM (a) Lấy a b nằm Z Khi đó, ta có φ( ab) = ab ( mod N ) ≡ a ( mod N ).b ( mod N ) = φ( a).φ(b) Vậy φ đồng cấu nhóm (b) Lấy a, b ∈ R∗ , ta có φ( a).φ(b) = a b − a b −1 = 41 ab − a b −1 = ab 0 ( ab)−1 = φ( ab) (c) Lấy a, b ∈ F∗p Khi ta có logg ( ab) = logg ( a) + logg (b) Công thức chứng minh trước Bài tập 2.15 (a) Chứng minh GL2 (F p ) nhóm (b) Chỉ GL2 (F p ) nhóm khơng giao hốn với p (c) Có phần tử GL2 (F p )? (d) Có phần tử GLn (F p )? BÀI LÀM (a) Lấy hai ma trận A= a b c d x y z t B = ∈ GL2 (F p ) Khi đó, ta có AB = a b c d x y z t = ax + bz ay + bt cx + dz cy + dt ∈ GL2 (F p ) Ma trận đơn vị 0 E2 = nghịch đảo ma trận A A −1 = ad − bc d −c −b a với số lấy theo modulo p Vậy GL2 (F p ) nhóm (b) Nhóm GL2 (F p ) khơng nhóm giao hốn 1 1 1 = 1 42 = 1 = 1 1 BÀI TẬP BÀI TẬP (c) Ta có GL2 (F p ) nhóm ma trận cấp có định thức khác với phần tử F p Số cách để chọn cột p2 − 1, số cách để chọn cột lại độc lập tuyến tính với cột cho p2 − p Vậy số phần tử GL2 (F p ) | GL2 (F p )| = ( p2 − 1)( p2 − p) = p( p − 1)2 ( p + 1) (d) Áp dụng cách làm tương tự, số phần tử GLn (F p ) | GLn (F p )| = n −1 ∏ ( p n − p i ) i =0 Bài tập 2.16 Xác thực khẳng định sau √ (a) x2 + x = O( x2 ), (b) 6x2 − 37x5 + = O( x5 ), (c) k300 = O(2k ), (d) (ln k)375 = O(k0,001 ), (e) k2 2k = O(e2k ), (f) N 10 N = O(e N ) BÀI LÀM (a) Ta có Vậy x2 + √ √ x2 + x = lim x2 x = O( x2 ) (b) Ta có 6x2 − 37x5 + = −37 lim x5 Vậy 6x2 − 37x5 + = O( x5 ) (c) Ta tính k300 lim k 43 BÀI TẬP Ta thấy tử mẫu tiến đến vô k tiến đến vô Áp dụng quy tắc L’Hospital liên tục, giới hạn cho trở thành lim 300! = (ln 2)300 2k Vậy k300 = O(2k ) (d) Ta tính (ln k)375 lim 0,001 k Áp dụng L’Hospital liên tiếp ta có giới hạn lim = k375,001 Vậy (ln k)375 = O(k0,001 ) (e) Ta có lim k2 2k = lim e2k k2 e2 k Áp dụng L’Hospital lần, ta tính giới hạn Do k2 2k = O(e2k ) (f) Ta tính giới hạn N 10 N N 10 lim = lim e N eN Áp dụng quy tắc L’Hospital liên tiếp, ta có lim N 10 e N = Vậy N 10 N = O(e N ) Bài tập 2.17 Sử dụng phương pháp bước nhỏ-bước lớn Shanks để giải toán logarit rời rạc sau (a) 11x = 21 F71 (b) 156x = 116 F593 44 BÀI TẬP (c) 650x = 2213 F3571 BÀI LÀM (a) Ta giải toán logarit rời rạc 11x = 21 F71 Cấp phần tử 11 F71 70 Khi đó, ta tính Danh sách 1: 1, 11, 50, 53, 15, 23, 40, 14, 12, 61 Danh sách 2: 21, 5, 35, 32, 11, 6, 42, 10, 70, 64 Ta thấy 111 = 21.11−9.4 Vậy x = + 9.4 = 37 (b) Ta giải toán logarit rời rạc 156x = 116 F593 √ Cấp phần tử 156 F593 148 Ta đặt N = 148 = 13 H = h− N = 156−13 = 297 Ta có bảng sau hk a.H k 156 58 23 29 30 311 529 452 97 226 307 113 452 353 k Từ bảng ta thấy 1567 = 116.2974 = 452 F593 Khi đó, ta có 16 = 1567 2974 = 1567 (13613 )4 = 15659 nghiệm x = 59 45 F593 , (c) Ta có h = 650 có cấp 510 F3571 Đặt N = 650−23 = 1925 Ta có bảng sau k hk a.H k 650 3393 1122 166 816 1731 1892 432 1376 3128 k 10 hk a.H k 1650 694 1200 396 1522 1677 133 41 746 363 k 11 12 13 14 15 √ hk 2815 1398 1666 887 1619 BÀI TẬP 510 = 23 H = h− N = a.H k 2430 3311 3011 442 952 k 16 17 18 19 20 hk a.H k 2476 677 2450 3381 3405 2063 2801 323 3011 421 Ta thấy 65020 = 2213.192513 = 3011 F3571 Lại có 1925 = 650−23 , ta tính 2213 = 65020 1925−13 = 65020 (65023 )13 = 650319 F3571 , Vậy nghiệm phương trình x = 319 Bài tập 2.18 Giải hệ phương trình đồng dư sau (hoặc giải thích khơng có nghiệm) (a) x ≡ ( mod 7) x ≡ ( mod 9) (b) x ≡ 137 ( mod 423) x ≡ 87 ( mod 191) (c) x ≡ 133 ( mod 451) x ≡ 237 ( mod 697) (d) x ≡ ( mod 9), x ≡ ( mod 10), x ≡ ( mod 11) (e) x ≡ 37 ( mod 43), x ≡ 22 ( mod 49), x ≡ 18 ( mod 71) BÀI LÀM (a) Do x ≡ ( mod 7) nên x có dạng x = 7k + với k số nguyên dương Mặt khác, lại có x ≡ ( mod 9) nên ta có 7k + ≡ ( mod 9) hay 7k ≡ ( mod 9) Nhân hai vế với nghịch đảo modulo 11 Khi đó, ta có k ≡ 1.4 ( mod 9) Do k = 9n + Do x = 7.4 + = 31 46 BÀI TẬP (b) Do x ≡ 87 ( mod 191) nên x có dạng x = 191k + 87 với k số nguyên dương Mặt khác, lại có x ≡ 137 ( mod 423) nên ta có 191k + 87 ≡ 137 ( mod 423) hay 191k ≡ 50 ( mod 423) Nhân hai vế với nghịch đảo 191 modulo 423 392 Khi đó, ta có k ≡ 50.392 ( mod 423) = 142 ( mod 423) Do k = 423n + 142 Vậy x = 191.142 + 87 = 27209 (c) Do x ≡ 133 ( mod 451) nên x có dạng x = 451k + 133 với k số nguyên dương Mặt khác, lại có x ≡ 237 ( mod 697) nên ta có 451k + 133 ≡ 237 ( mod 697) hay 451k ≡ 104 ( mod 697) Tuy nhiên, 451 ko có nghịch đảo phép nhân modulo 697 451 697 không nguyên tố Vậy không tồn nghiệm (d) Áp dụng Định lý thặng dư Trung Hoa để giải hệ x ≡ ( mod 9), x ≡ ( mod 10), ≡ ( mod 11) Suy x = 986 (e) Áp dụng Định lý thặng dư Trung Hoa để giải hệ x ≡ 37 ( mod 43), x ≡ 22 ( mod 49), x ≡ 18 ( mod 71) Suy x = 11733 Bài tập 2.19 Ta có số đồ vật, ta khơng biết xác có Nếu ta xếp hàng ba thừa hai Nếu xếp thành hàng thừa Nếu ta xếp thành hàng thừa Vậy có đồ vật? BÀI LÀM Gọi x số đồ vật Khi đó, ta giải hệ phương trình đồng dư x ≡ ( mod 3), x ≡ ( mod 5), x ≡ ( mod 7) Do x ≡ ( mod 3), x = 3k + với k số tự nhiên Lại có từ phương trình thứ hai ta có 3k + ≡ ( mod 5) 47 hay k ≡ ( mod 5) BÀI TẬP Vậy k = 5n + với n số tự nhiên đó, suy x = 3(5n + 2) + = 15n + Và cuối cùng, từ phương trình thứ ta có 15n + ≡ ( mod 7), hay n ≡ ( mod 7) Do n = 7m + với m số tự nhiên Khi đó, ta có x = 15(7m + 1) + = 105m + 23 Vậy số đồ vật 23 số đồ vật thỏa mãn đề Bài tập 2.21 Cho x = c x = c hai nghiệm hệ phương trình đồng dư Định lý thặng dư Trung Hoa Chứng minh c ≡ c ( mod m1 mk ) BÀI LÀM Giả sử c c hai nghiệm Định lý thặng dư Trung Hoa Khi đó, ta có c ≡ c ≡ a1 ( mod m1 ) Do m1 |(c − c ) Lập luận tương tự ta có mi |(c − c ) với ≤ i ≤ k Do lcm(m1 , , mk )|(c − c ) Do mi , m j đôi nguyên tố với i = j nên ta có lcm(m1 , , mk ) = m1 mk Do m1 mk |(c − c ) Vậy c ≡ c ( mod m1 mk ) Bài tập 2.23 Sử dụng phương pháp nói phần (7.1) để tìm cắn bậc hai modulo hợp số (a) Tìm bậc hai 340 modulo 437 (b) Tìm bậc hai 253 modulo 3143 (c) Tìm bốn bậc hai 2833 modulo 4189 (d) Tìm tám bậc hai 813 modulo 868 BÀI LÀM 48 BÀI TẬP (a) Ta tìm phần tử x cho x2 ≡ 340 ( mod 437) Ta có 437 = 19.23, đó, ta giải hệ phương trình đồng dư y2 ≡ 340 ≡ 17 ( mod 19), z2 ≡ 340 ≡ 18 ( mod 23) Do 19 23 đồng dư modulo 4, ta tìm bậc hai cách sử dụng Mệnh đề (7.4) sử dụng phương pháp "vét cạn" Khi đó, ta có y ≡ ±6, z ≡ ±8 Ta chọn hai nghiệm dương, đó, sử dụng Định lý thặng dư Trung Hoa để giả hệ phương trình đồng dư x ≡ ( mod 19), x ≡ ( mod 23) Giải ta x = 215 (b) Ta tìm nghiệm x cho x2 ≡ 253 ( mod 3143) Ta có 3143 = 7.449 Khi đó, ta giải hệ phương trình đồng dư y2 ≡ 253 ≡ ( mod 7), z2 ≡ 253 ( mod 449) Dễ thấy y = ±1 nghiệm phương trình đầu Ta giải phương trình z2 ≡ 253 ( mod 449) Giải ta có z = ±40 Ta chọn hai nghiệm dương, đó, sử dụng Định lý thặng dư Trung Hoa để giả hệ phương trình đồng dư x ≡ ( mod 7), x ≡ 40 ( mod 449) Giải ta x = 1387 (c) Ta tìm số nguyên x cho x2 ≡ 2833 ( mod 4189) Ta lại có 4189 = 59.71 59, 71 đồng dư modulo Khi đó, ta tìm số y, z thỏa mãn y2 ≡ 2833 ≡ ( mod 59), z2 ≡ 2833 ≡ 64 ( mod 71) Áp dụng Mệnh đề 2.27 ta có y ≡ ±1, ( mod 59), Vậy ta có giá trị x 49 z ≡ ±8 ( mod 71) y z x BÀI TẬP 1 -1 -1 -8 -8 1712 3187 1002 2477 (d) Ta tìm số nguyên x cho x2 ≡ 813 ( mod 868) Lại có 868 = 4.7.31 Khi đó, ta tìm số a, b, c thỏa mãn a2 ≡ 813 ≡ ( mod 4), b2 ≡ 813 ≡ ( mod 7), c2 ≡ 813 ≡ ( mod 31) Dễ dàng thấy a ≡ ±1 ( mod 4), b ≡ ± ( mod 7) Áp dụng Mệnh đề (7.4) ta tính c ≡ ±10 ( mod 31) Vậy ta có giá trị x sau a 1 1 -1 -1 -1 -1 b 1 -1 -1 1 -1 -1 c 10 -10 10 -10 10 -10 10 -10 x 785 393 41 517 351 827 475 83 Bài tập 2.26 Cho F p trường hữu hạn N | p − Chứng minh F∗p có phần tử cấp N Điều với lũy thừa nguyên tố chia hết p − BÀI LÀM Gọi g phần tử nguyên thủy Khi ta có cấp g p − Vậy phần tử h=g p −1 N phần tử cấp N F∗p Bài tập 2.28 Sử dụng thuật toán Polig-Hellman để giải toán logarit rời rạc gx = a trường hợp sau 50 Fp BÀI TẬP (a) p = 433, g = 7, a = 166 (b) p = 746497, g = 10, a = 243278 (c) p = 41022299, g = 2, a = 39183497 (d) p = 1291799, g = 17, a = 192988 BÀI LÀM (a) Ta có p − = 432 = 24 33 Do đó, Bước 1, ta giải phương trình q e h = g( p−1)/q 265 3 374 e b = a( p−1)/q 250 335 e y với hy = b 15 20 Bước 2, ta giải x ≡ 15 ( mod 24 ), x =≡ 20 ( mod 33 ) Do x ≡ 15 ( mod 24 ) nên ta có x = 16k + 15 với k số tự nhiên Khi đó, từ phương trình thứ hai ta có hay k ≡ ( mod 27) 16k + 15 = 20 ( mod 27), Do x = 16(27n + 2) + 15 = 512n + 47 Vậy x = 47 (b) Ta có p − = 746496 = 210 36 Khi đó, ta giải q e h = g( p−1)/q 10 4168 674719 e b = a( p−1)/q 38277 322735 e y với hy = b 523 681 Bước 2, ta giải hệ x ≡ 523 ( mod 210 ), x ≡ 681 ( mod 36 ) Do x ≡ 523 ( mod 1024) nên x = 1024k + 523 Từ phương trình thứ hai ta có 1024k + 523 ≡ 681 ( mod 729), hay k ≡ 218( mod 729) Vậy k = 729n + 218, suy x = 1024(729n + 218) + 523 = 746496n + 223755 Vậy x = 223755 (c) Ta có p − = 41022298 = 2.295 Khi đó, ta giải 51 q e h = g( p−1)/q 41022298 29 e b = a( p−1)/q 11844727 e BÀI TẬP y với hy = b 13192165 Để giải toán logarit rời rạc hàng dưới, tức tìm y cho 4y ≡ 11844727 ( mod 41022299) Áp dụng Mệnh đề (8.3) để giải toán logarit rời rạc trên, với kiện 429 = 18794375 phần tử cấp 29 F∗p Để tránh nhầm lẫn ký hiệu, ta viết u lũy thừa cần tìm u = u0 + u1 29 + u2 292 + u3 393 + u4 294 Đầu tiên, ta giải 18794375u0 = (11844727)29 = 987085 Nghiệm phương trình u0 = Giá trị u bước u = Tiếp theo, ta giải 18794375u1 = (11844727.4−7 )29 = 8303208 Nghiệm phương trình u1 = Giá trị u bước u = 239 = + 8.29 Tiếp theo, ta giải 18794375u2 = (11844727.4−239 )29 = 30789520 Nghiệm phương trình u2 = 26 Giá trị u bước u = 22105 = + 8.29 + 26.292 Tiếp theo, ta giải 18794375u3 = (11844727.4−22105 )29 = 585477 Nghiệm phương trình u3 = 18 Giá trị u bước u = 461107 = + 8.29 + 26.292 + 18.293 Cuối cùng, ta giải 18794375u4 = (11844727.4−461107 )29 = 585477 Nghiệm phương trình u4 = 18 Giá trị u bước u = 13192165 = + 8.29 + 26.292 + 18.293 + 18.294 52 BÀI TẬP Vậy giá trị cuối u u = 13192165 = + 8.29 + 26.292 + 18.293 + 18.294 , giá trị cột cuối bảng Bước giải hệ phương trình x ≡ 13192165 ( mod 295 ) x ≡ ( mod 2), Bằng cách giải tương tự, ta có x = 33703314 (d) Ta có p − = 1291798 = 2.709.911 Khi đó, ta giải q 709 911 e h = g( p−1)/q 1291798 679773 329472 e b = a( p−1)/q 566657 898549 e y với hy = b 322 534 Ta cần giải toán logarit rời rạc 679773a ≡ 566657 ( mod 1291799) 329472b ≡ 898549 ( mod 1291799) • Xét toán 679773a ≡ 566657 ( mod 1291799) Sử dụng thuật tốn va chạm Ta có cấp 679773 F∗p 709 Khi đó, √ ta đặt N = 709 = 27, H = h− N = 679773−27 = 1163228 Ta có bảng sau k hk a.H k 679773 514654 619440 240743 1201482 227586 273032 871342 560411 664194 741603 869719 1011766 63489 53 k 10 11 12 13 14 hk a.H k 628131 33662 419999 861447 899639 452224 1029156 981086 627952 1088847 169738 693591 1114593 1071906 k 15 16 17 18 19 20 21 Ta thấy hk a.H k 402512 841788 843586 1270669 616491 51933 131154 231288 148258 283532 794650 575008 361012 303202 k 22 23 24 25 26 27 28 hk 570648 656591 777755 981086 1287346 947687 916344 BÀI TẬP a.H k 925880 543968 779931 680573 637680 743652 421693 67977325 = 566657.(679773−27 )11 Suy 67977325+27.11 = 566657 Vậy a = 25 + 27.11 = 322 Làm tương tự với toán sau, ta tính nghiệm tốn logarit rời rạc sau y = 534 Khi đó, nghiệm tốn ban đầu thỏa mãn hệ phương trình đồng dư x ≡ ( mod 2), x ≡ 322 ( mod 709), Nghiệm toán x = 984414 54 x ≡ 534 ( mod 911) ... Bài toán logarit rời rạc Bài toán logarit rời rạc khó đến đâu? Trao đổi khóa Diffie-Hellman 12 Hệ mã hóa cơng khai ElGamal 14 Thuật toán va chạm cho toán logarit rời rạc 18 Định lý... g n Tiếp theo, nhân bên phải hai vế phần tử ( g1 gn )−1 suy an = e Bài toán logarit rời rạc Bài toán logarit rời rạc toán toán học lên trình mã hóa mật mã học, bao gồm phiên mod p mô tả phần... tổng qt tốt biết đến giải toán logarit rời rạc F∗p với phép nhân thời gian gần lũy thừa Bài toán logarit rời rạc cho đường cong elliptic cho chí khó tốn logarit rời rạc F∗p Cụ thể, nhóm đường

Ngày đăng: 14/02/2022, 15:31

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w