1. Trang chủ
  2. » Luận Văn - Báo Cáo

Một số tấn công vào hệ mật mã RSA

82 737 2

Đ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

Định dạng
Số trang 82
Dung lượng 1,44 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các hệ mật mã công khai khi ra đời đã làm thay đổi về bản chất cho việc bảo mật trên các hệ thống công cộng, và do tính chất đặc biết đó chúng đã là cơ sở cho việc phát triển nhiều giao

Trang 1

LỜI NÓI ĐẦU

Ngày nay, trong sự bùng nổ về công nghệ thông tin đi cùng với việc phát triển của các phuơng tiện thông tin liên lạc đã tạo ra nhiều tiến bộ mới trong lĩnh vực này Do đó nhu cầu cập nhật, trao đổi thông tin là không thể thiếu được ở mỗi người Song song với quá trình trao đổi thông tin đó của con người thì cũng chính là lúc họ nghĩ đến làm thế nào để bảo mật được những thông tin để chỉ những người trong cuộc mới có thể xem và hiểu được Để đáp ứng được như cầu đó thì hàng loạt các hệ mật mã đã ra đời Ngày nay thì chúng không ngừng phát triển và ngày càng hiện đại hơn

Với đồ án tốt nghiệp “một số tấn công vào hệ mật mã RSA” được thực

hiện nhằm mục đích tìm hiểu tổng quan về hệ mật mã nói chung và đặc biệt là

hệ mật mã RSA Tại Việt Nam thì việc tìm hiểu này còn mới bắt đầu ở những bước đi chập chững trong giai đoạn đầu của sự phát triển Chính vì thế là sinh viên công nghệ thông tin em muốn tìm hiểu và nắm bắt thêm các thông tin về hệ mật mã nói chung, đặc biệt là hệ mật RSA để có thể áp dụng trong thực tiễn góp phần nâng cao sự hiểu biết Trong thời gian làm đồ án mặc dù đã có nhiều cố gắng nhưng đây còn là một đề tài, một lĩnh vực mới, nên sự hiểu biết còn nhiều hạn chế Vì thế, đồ án của em không tránh khỏi sai lầm và thiếu sót Em rất mong đuợc sự chỉ bảo, góp ý của các thầy cô, các bạn để đồ án này của em được hoàn thiện hơn

Trang 2

Cuối cùng em xin chân thành cảm ơn tới các thầy cô giáo trong Khoa đã tạo điều kiện giúp đỡ em, đặc biệt là thầy Thân Quang Khoát đã chỉ bảo tận tình

để em hoàn thành tốt đồ án tốt nghiệp này

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU 1

LỜI CAM ĐOAN Error! Bookmark not defined MỤC LỤC 3

DANH MỤC HÌNH ẢNH 6

PHẦN MỘT Error! Bookmark not defined HỆ MẬT MÃ CÔNG KHAI RSA Error! Bookmark not defined CHƯƠNG 1 7

TỔNG QUAN VỀ BẢO MẬT THÔNG TIN 7

1.1 Sơ lược về lịch sử mật mã học 7

1.2 Những kiến thức cơ bản 10

1.3 Các phương pháp mã hóa 12

1.3.1 Mã hoá cổ điển 13

1.2.2 Mã hoá hiện đại 13

1.3.3 Hệ thống mã hoá lai (Hybrid Cryptosystems) 16

1.3.4 Hàm băm (Hash function) 17

1.4 Thám mã và tính an toàn của hệ mật mã 19

1.4.1 Thám mã 19

1.4.2 Tính an toàn của một hệ mật mã 20

1.5 Một số bài toán về an toàn và bảo mật thông tin 21

CHƯƠNG 2 23

HỆ MẬT MÃ CÔNG KHAI RSA 23

2.1 Sơ lược về hệ mật mã khoá công khai 23

2.1.1 Sơ lược về hệ mật mã công khai 23

2.1.2 Một số bài toán cơ bản 24

2.2 Mô tả hệ mật mã RSA 28

2.2.1 Sơ đồ của hệ mật mã RSA 28

Trang 4

2.3 Quá trình thực hiện hệ mật mã RSA 31

2.4 Tính bảo mật của RSA 31

2.4.1 Dùng modun n chung 32

2.4.2 Khi số mũ lập mã e nhỏ 33

2.4.3 Lợi dụng tính chất nhân của hàm lập mã 34

2.4.4 Tấn công bằng cách lặp phép mã 34

2.4.5 Về khả năng che giấu của bản mật mã 35

CHƯƠNG 3 37

MỘT SỐ KIẾN THỨC CÓ LIÊN QUAN 37

3.1 Lý thuyết lưới (Lattice Theory) 37

3.1.1 Giới thiệu 37

3.1.2 Một số khái niệm và tính chất của lý thuyết lưới 38

3.1.3 Bài toán SVP và CVP 39

3.2 Số học các số nguyên 40

3.2.1 Tính chia hết của các số nguyên 40

3.2.2 Thuật toán Euclide 41

3.3 Độ phức tạp tính toán 43

3.3.1 Khái niệm về độ phức tạp tính toán 43

3.3.2 Hàm một phía và cửa sập một phía 45

3.4 Số nguyên tố 46

3.4.1 Một số tính chất của số nguyên tố 46

3.4.2 Một số tiêu chuẩn của số nguyên tố 47

3.5 Xác suất và thuật toán xác suất 47

3.5.1 Khái niệm xác suất 48

3.5.2 Thuật toán xác xuất 49

PHẦN HAI 51

MỘT SỐ TẤN CÔNG VÀO HỆ MẬT RSA 51

CHƯƠNG 1 52

Trang 5

1.1 Đặt vấn đề 52

1.2 Phân tích một số thành thừa số nguyên tố 53

1.3 Một số phương pháp đơn giản kiểm tra số nguyên tố 57

1.3.1 Các phương pháp thô sơ 57

1.3.2 Kiểm tra theo xác suất 58

CHƯƠNG 2 59

TẤN CÔNG KHI KHOÁ BÍ MẬT NHỎ 59

2.1 Phân loại các tấn công 59

2.3 Thâm nhập khi số mũ cá nhân thấp 59

2.4 Thâm nhập khi số mũ công cộng thấp 62

2.4.1 Định lý Coppersmith 62

3.4.2 Thâm nhập của Hastard 67

CHƯƠNG 3 70

MỘT SỐ TẤN CÔNG KHÁC 70

3.1 Franklin-Reiter thâm nhập thông điệp liên quan 70

3.2 Việc thâm nhập bộ đệm ngắn của Coppersmith 71

3.3 Thâm nhập từng phần một cách lộ liễu 73

3.4 Tấn công vào quá trình triển khai 74

3.4.1 Tấn công tạm thời 75

3.4.2 Lỗi ngẫu nhiên 77

3.4.3 Sự tấn công của Bleichenbacher trên PKCS 1 78

KẾT LUẬN 80

TÀI LIỆU THAM KHẢO 81

Trang 6

DANH MỤC HÌNH ẢNH

Hình 1.1: Sơ đồ mã hoá và giải mã

Hình 1.2: Sơ đồ mã hoá đối xứng

Hình 1.3: Sơ đồ mã hoá bất đối xứng

Hình 1.4: Sơ đồ hệ thống mã hóa lai

Trang 7

có cách khôi phục lại nguyên dạng ban đầu để những người trong cuộc vẫn có thể hiểu được Tất nhiên để thực hiện được một phép mật mã, ta cần một thuật toán biến đổi bản rõ, cùng với khoá mật mã, thành bản rõ mật mã, và một thuận toán ngược lại, biến đổi mật mã cùng với khoá mật mã thành bản rõ Ngày nay,

dạng biến dổi của văn bản được gọi là mật mã của văn bản, cách lập mật mã cho một văn bản được gọi là phép lập mật mã, còn cách khôi phục lại nguyên dạng ban đầu của thông tin văn bản được gọi là phép giải mã Phép lập mật mã và phép giải mã được thực hiện dựa vào một khoá riêng nào đó mà chỉ những người trong cuộc mới biết được gọi là khoá bí mật Các thuật toán này thường không nhất thiết phải giữ bí mật mà cái cần giữ bí mật ở đây là khoá mật mã

Trong thực tiễn, đã có hoạt động bảo mật thì cũng có hoạt động ngược lại là

khám phá các bí mật từ các bản mật mã, ta thường gọi hoạt động này là mã thám: hoạt động này cũng quan trọng không kém gì hoạt động bảo mật Do đó

Trang 8

mã thám thường tập trung vào việc tìm khoá mật mã hay cũng chính là công việc phá khoá

Trong mấy thập niên gần đây, khi thế giới bắt đầu bước vào kỷ nguyên của máy tính điện tử thì lĩnh vực mật mã cũng đã có những chuyển biến lớn từ

giai đoạn mật mã truyền thống chuyển sang giai đoạn mật mã máy tính Ngày

nay, máy tính điện tử được sử dụng ngày càng phổ biến hơn trong lĩnh vực lập

và giải mật mã Chính những công việc đó đã kích thích không chỉ các giáo sư, nhà nghiên cứu, mà còn cho cả những người yêu thích bộ môn này muốn nghiên cứu, tìm hiểu chúng Vì các công việc chủ yếu của mật mã được thực hiện dựa

trên máy tính điện tử nên các khái niệm bí mật cũng dần dần được máy tính hoá Chính vì vậy, khái niệm tính bí mật là khái niệm cốt lõi nhất đối với bất kỳ một

mật mã nào Trên thế giới, đã có nhiều cách tiếp cận để tìm hiểu được định nghĩa của khái niệm này một cách chính xác, khoa học, toán học cho nó thì chưa

có Một cách tiếp cận khá phổ biến là gắn khái niệm bí mật này với khái niệm ngẫu nhiên Nếu một văn bản có các thông tin truyền đi rõ có nội dung xác định

thì điều chúng ta mong muốn là bản mật mã của nó phải có một bản gồm các ký

tự được sắp xếp hỗn độn, như vậy ngẫu nhiên người ngoài nhìn hay đọc chúng

thì cũng không hiểu được nội dung của bản gốc Nhưng, có một điều đặt ra là

chưa thể xác định được khái niệm bí mật thì khái niệm ngẫu nhiên cũng khó có

Trang 9

các công việc của mật mã chủ yếu là dựa vào máy tính điện tử nên song song

với các khái niệm bí mật, ngẫu nhiên thì khái niệm dãy bít ngẫu nhiên cũng

được nghiên cứu, tìm hiểu Nhưng, ta cũng chưa có một quy định tiêu chuẩn

toán học nào để xác định một dãy bít có là ngẫu nhiên hay không mà chỉ có thể tìm hiểu được một số thuộc tính gần với tính ngẫu nhiên dùng làm căn cứ để xác định một dãy bít có là giả ngẫu nhiên hay không theo nghĩa có các thuộc tính đó

hay không mà thôi

Vào những năm 1960 với sự ra đời của Lý thuyết về độ phức tạp tính toán thì các khái niệm trên đã tìm được một nội dung chung có thể nghiên cứu một cách toán học là tính phức tạp Giống như một ví dụ cụ thể sau: nếu một người từ bản mật mã (là bí mật với người đó) đó để tìm ra bản rõ thì người đó

phải thực hiện một hay nhiều quá trình tính toán mà độ phức tạp của nó vượt quá khả năng tính toán của người đó (kể cả máy tính) Cũng giống như vậy, một đoạn bít có thể được xem là ngẫu nhiên nếu dựa vào một đoạn bít đã biết để tìm đoạn bít tiếp theo của dãy thì người đó phải tìm hay thực hiện một quá trình tính toán mà độ phức tạp của nó tương đối lớn

Nhưng ngày nay, việc chuyển từ mã hoá các thông tin ứng dụng dựa trên máy tính điện tử thì giai đoạn mật mã máy tính đã được ứng dụng và phát triển Chuyển sang giai đoạn mật mã máy tính thì đã làm cho các hệ thống mật mã có cấu trúc tinh tế hơn, đòi hỏi lập mật mã hay giải mã sẽ phức tạp hơn nhiều, do

đó khả năng giữ bí mật của mật mã được nâng cao hơn trước rất nhiều

Tuy nhiên, vào những năm 1970 một bước chuyển có tính chất cách mạng mà mật mã máy tính mang lại đó là việc phát hiện ra các hệ mật mã có

khoá công khai Cơ sở lý thuyết của sự phát minh đó là sự tồn tại của hàm một

Trang 10

phía tức là những hàm số học y  f (x) mà việc tính y theo x thì tương đối dễ, nhưng việc tính ngược từ y tìm x tức là quá trình tính: xf1(y)thì cực kỳ phức tạp Các hệ mật mã công khai khi ra đời đã làm thay đổi về bản chất cho việc bảo mật trên các hệ thống công cộng, và do tính chất đặc biết đó chúng đã là cơ

sở cho việc phát triển nhiều giao thức an toàn thông tin khác khi sử dụng mạng truyền thông công cộng, như các loại chữ kỹ điện tử, các giao thức về xác nhận nguồn tin và định danh người gửi,…và gần đây là việc phát triển nhiều giao thức đặc thù khác trong các giao dịch ngân hàng, thương mại điện tử,…

1.2 Những kiến thức cơ bản

Mật mã học là sự nghiên cứu các phương pháp toán học liên quan đến một số khía cạnh của thông tin như sự an toàn, sự toàn vẹn dữ liệu, sự xác nhận tồn tại và sự xác nhận tính nguyên bản của thông tin

Một cách định nghĩa khác về hệ mật mã học như sau: Trước tiên mật mã học (cryptography) là một nghệ thuật nhằm che giấu thông tin, bằng cách chuyển đổi (encrypt) thông tin thành dạng thông tin không đọc được (cipher text) Chỉ có những người giữ chìa khoá (key) mới có thể giải mã (decrypt) thông tin thành dạng thông tin có thể hiểu được (plain text) Thông tin đôi khi bị giải mã mà không cần khoá bí mật Ngành học nghiên cứu về việc bẻ khoá (attack/crack/hack) này được gọi là cryptanalysis Dưới đây là sơ đồ mã hoá và giải mã:

$^f

Trang 11

Mật mã được sử dụng để bảo vệ tính bí mật của thông tin khi thông tin được truyền đi trên các kênh truyền thông công cộng như các kênh bưu chính,

điện thoại,… Giả sử có một người A muốn gửi thông điệp x (chẳng hạn như là một bức thư) đến B, để bảo mật cho bản thông điệp x này A lập cho x một bản mật mã y, và thay cho việc A gửi cho B bản x thì gửi cho B bản y Khi B nhận được y thì B giải mã y để lại được thông điệp x như A định gửi Để làm được

việc như vậy, A và B phải thoả thuận trước với nhau các thuật toán lập mã và

giải mã, và đặc biệt là khoá mật mã chung k để thực hiện được các thuật toán đó

Định nghĩa 1.1 Một sơ đồ hệ thống mật mã là một bộ năm:

S = (P, C, K, E, D) (1) Thoả mãn các điều kiện sau:

+P: là một tập hợp hữu hạn các ký tự bản rõ

+C: là một tập họp các ký tự bản mã

+K: là một tập hợp hữu hạn các khoá

+E: là một tập ánh xạ từ KxP vào C, được gọi là phép lập mật mã

+D: là một tập ánh xạ từ KxC vào P, được gọi là phép giải mã

Với mỗi k  K, ta định nghĩa e k : P  C, d k: C  P là hai hàm xác định bởi:

Trang 12

Về sau, để thuận tiện ta sẽ gọi danh sách (1) thoả mãn các tính chất trên

gọi là sơ đồ hệ thống mật mã, còn khi đã chọn cố định một khoá k nào đó, thì danh sách (P, C, e k , d k) là một hệ mật mã thuộc sơ đồ đó

Theo định nghĩa này, phép lập mật mã (giải mã) được định nghĩa cho từng ký tự của bản rõ (bản mã) Trong thực tế, bản rõ của một thông báo thường

là một dãy các ký tự bản mã, tức là phần tử của tập C*, việc mở rộng các hàm e k

và d k lên miền tương ứng P* và C* để được các thuật toán lập mật mã và giải mã

1.3 Các phương pháp mã hóa

Có rất nhiều các thuật toán hay phương pháp mã hoá khác nhau Từ những thuật toán được công khai để mọi người cùng sử dụng và áp dụng như là một chuẩn chung trong việc mã hoá dữ liệu; đến những thuật toán mã hoá không được công bố Có thể phân loại các thuật toán mã hoá như sau:

Phân loại theo các phương pháp:

- Mã hoá cổ điển (Classical cryptography)

- Mã hoá đối xứng (Symetric cryptography)

- Mã hoá bất đối xứng (Asymetric cryptography)

- Hàm băm (Hash function)

Phân loại theo số lượng khoá:

- Mã hoá khoá bí mật (Private-key Cryptography)

- Mã hoá khoá công khai (Public-key Cryptography)

Trang 13

- Transposition: hoán vị - phương pháp mã hoá trong đó các ký tự trong văn bản ban đầu chỉ thay đổi vị trí cho nhau còn bản thân các ký tự không hề bị biến đổi

1.2.2 Mã hoá hiện đại

a) Symmetric cryptography: mã hóa đối xứng - tức là cả hai quá trình mã hoá và giải mã đều dùng một chìa khoá Để đảm bảo tính an toàn, chìa khoá này phải được giữ bí mật Vì thế các thuật toán này còn có một tên gọi khác là secret key cryptography (hay private key cryptography), tức là thuật toán mã hoá dùng chìa khoá riêng (hay bí mật)

Hình 1.2: Sơ đồ mã hoá đối xứng

Trang 14

Như hình trên thì giả sử nếu bên A chỉ gửi thông điệp đã mã hoá cho bên

B mà không hề báo trước về thuật toán sử dụng, B sẽ không hiểu A muốn nói gì

Vì thế bắt buộc A phải thông báo cho B về chìa khoá và thuật toán sử dụng tại một thời điểm nào đó trước đấy A có thể làm điều này trực tiếp hay gián tiếp thì cũng có thể dẫn tới khả năng bị người thứ ba làm cách nào đó có được thuật toán và chìa khoá để giải mã mà A đã gửi cho B

Mã hoá đối xứng có thể chia làm hai nhóm phụ:

+ Block ciphers: thuật toán khối – trong đó từng khối dữ liệu trong văn bản ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ dài (thường được tính bằng bít) Một số thuật toán khối thông dụng là: DES, 3DES,…

+ Stream ciphers: thuật toán dòng – trong đó dữ liệu đầu vào được mã hoá từng bít một, tức là với kích thước mỗi khối là 1 bít Các thuật toán dòng có tốc độ nhanh hơn các thuật toán khối Chúng được dùng khi khối lượng dữ liệu cần mã hoá chưa biết trước như trong kết nối không dây

b) Asymmetric cryptography: mã hoá bất đối xứng - sử dụng một cặp chìa khoá có liên quan tới nhau về mặt toán học, một chìa khoá công khai dùng

để mã hoá (public key) và một chìa khoá bí mật dùng để giải mã (private key) Một thông điệp, sau khi được mã hoá bởi chìa khoá công khai sẽ chỉ có thể được giải mã với chìa khoá bí mật tương ứng Do các thuật toán này sử dụng thuật toán công khai nên nó còn có một tên gọi khác nữa là: public-key cryptography (thuật toán mã hóa dùng chìa khóa công khai) Một số thuật toán thông dụng là: RSA, Elgamal,…

Cũng với ví dụ trên, nếu A muốn gửi một thông điệp bí mật tới B, A sẽ

Trang 15

của B chứ không phải của ai khác thông qua chứng chỉ điện tử (Chữ ký điện tử

đi kèm với các thông tin chủ sở hữu và một số thông tin cần thiết khác sẽ trở thành chứng chỉ điện tử) A dùng nó để mã hoá thông điệp của mình và gửi tới

B Khi B nhận được thông điệp đã mã hoá, B sẽ dùng chìa khoá bí mật của chính mình để giải mã nó Nếu giải mã thành công thì bức thông điệp đó đúng là dành cho B A và B ở đây có thể là hai người không quen biết Một hệ thống như vậy cho phép hai người thực hiện được giao dịch trong khi không chia sẻ trước một thông tin bí mật nào cả

Hình 1.3: Sơ đồ mã hoá bất đối xứng Một trong những hạn chế của các thuật toán mã hoá bất đối xứng là tốc

độ chậm, do đó trong thực tế người ta thường sử dụng một hệ thống lai tạp giữa thuật toán bất đối xứng và thuật toán đối xứng Tức là, người ta dùng thuật toán bất đối xứng để chia sẻ khoá bí mật rồi sau đó mới dùng thuật toán đối xúng với chìa khoá bí mật trên để truyền thông tin

Mặc dù các bản tin dưới dạng mật mã có thể được truyền trên các phương tiện thông tin công cộng (mạng viễn thông) nhưng các khoá thì phải được gửi đi một cách an toàn hơn Vấn đề bảo mật các khoá cũng có rất nhiều phức tạp khi nó được phân phối cho nhiều người cùng sử dụng Mã hoá bất đối xứng có các đặc điểm sau:

Trang 16

- Với mỗi khoá để mã hoá có đúng một khoá giải mã tương ứng, hai khoá này là khác nhau

- Có nhiều cặp khoá như vậy và có thể tính toán được

- Hầu như không thể tìm được khoá giải mã mặc dù đã biết khoá mã hoá

- Khoá mã hoá được công bố công khai cho nhiều người sử dụng, chỉ

có người nhận được biết khoá mật mã

1.3.3 Hệ thống mã hoá lai (Hybrid Cryptosystems)

Trên thực tế hệ thống mã hoá khoá công khai chưa thể thay thế hệ thống

mã hoá khoá bí mật được, nó ít được sử dụng để mã hoá dữ liệu mà thường dùng để mã hoá khoá Hệ thống mã hoá khoá lai ra đời là sự kết hợp giữa tốc độ

và tính an toàn của hai hệ thống mã hoá ở trên Dưới đây là mô hình của hệ thống mã hoá lai:

Hình 1.4: Sơ đồ hệ thống mã hóa lai Nhìn vào mô hình chúng ta có thể hình dung được hoạt động của hệ thống mã hoá này như sau:

- Bên gửi tạo ra một khoá bí mật dùng để mã hoá dữ liệu Khoá này còn được

Trang 17

- Sau đó, Session Key này lại được mã hoá bằng khoá công khai của bên nhận dữ liệu

- Tiếp theo dữ liệu mã hoá cùng với Session Key đã mã hoá được gửi đi tới bên nhận

- Lúc này bên nhận dùng khoá riêng để giải mã Session Key và có được Session Key ban đầu

- Dùng Session Key sau khi giải mã để giải mã dữ liệu

Như vậy, hệ thống mã hoá khoá lai đã tận dụng tốt được các điểm mạnh của hai hệ thống mã hoá ở trên đó là: tốc độ và tính an toàn Điều này sẽ làm hạn chế bớt khả năng giải mã của tin tặc

1.3.4 Hàm băm (Hash function)

Hàm băm là cách thức mã hoá một chiều biến đổi văn bản nhận dạng (clear text) trở thành hình thái mã hoá mà không bao giờ có thể giải mã Kết quả của tiến trình hashing còn được gọi là hash (xử lý băm), giá trị hash (hash value), hay thông điệp đã được mã hoá và tất nhiên không thể tái tạo lại dạng ban đầu Trong xử lý hàm băm dữ liệu đầu vào có thể khác nhau về độ dài, thế nhưng độ dài của xử lý Hash tại đầu ra lại là cố định

Hàm hash có hai tính chất quan trọng là:

+) Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết quả

+) Tính duy nhất: tức là hai thông điệp khác nhau có cùng một kết quả hash, là cực kì nhỏ

Trang 18

Một số ứng dụng của hàm Hash là:

+) Chống và phát hiện xâm nhập: chương trình chống xâm nhập so sánh giá trị hash của một file với giá trị trước đó để kiểm tra xem file đó có bị

ai đó thay đổi hay không

+) Bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng bằng cách kiểm tra giá trị hash của thông điệp trước và sau khi gửi nhằm phát hiện những thay đổi cho dù là nhỏ nhất

+) Tạo chìa khóa từ mật khẩu

+) Tạo chữ kí điện tử

Hashing được sử dụng trong một số mô hình chứng thực password Một giá trị hash có thể gắn với một thông điệp điện tử nhằm hỗ trợ tính tích hợp của

dữ liệu hoặc hỗ trợ xác định trách nhiệm không thể chối từ (non-repudiation)

Hashing được sử dụng để mã hoá passwords trong xác thực CHAP (CHAP là phương thức xác thực truy nhập quay số từ xa Remote Access Service, RAS client truy nhập vào RAS Server) RAS client sẽ gửi một hash password tới RAS Server RAS Server chứa hash pasword client đã tạo trước

đó Nếu hash trùng khớp thì password được chấp nhận và client sẽ được Server xác thực Việc gửi một hash thay vì gửi chính password có nghĩ là password đó không cần phải truyền qua mạng trong suốt quy trình Server xác thực client

Một vài thuật toán mã hoá được dùng trong mã hoá hashing:

- MD5 (Message Digest) – thuật toán MD5 tạo thành một dạng thông điệp được mã hoá với 128 bít Được tạo bởi Ronald Rivest và hiện là công nghệ

Trang 19

- SHA (Secure Hash Algorithm) – SHA dựa trên mô hình MD5 nhưng mạnh hơn gấp 2 lần SHA – 1 tạo giá trị hash với 160 bít Trong khi đó SHA –

256, SHA – 384, SHA – 512 tạo giá trị hash tương ứng là 256 bít, 384 bít, 512 bít

1.4 Thám mã và tính an toàn của hệ mật mã

1.4.1 Thám mã

Mật mã được sử dụng trước hết là đảm bảo tính bí mật cho các thông tin được trao đổi, và do đó bài toán quan trọng của thám mã cũng là bài toán phá bỏ tính bí mật đó Từ bản mật mã này ta có thể thu được dễ dàng các thông tin bí mật trên các kênh thông tin đại chúng công cộng Người thám mã phải phát hiện được nội dung bị che giấu trong bản mật mã đó, mà tốt nhất là tìm ra được bản

rõ gốc của bản mật mã đó Bản thân sơ đồ hệ thống mật mã, kể cả phép lập mã

và giải mã không nhất thiết phải giữ bí mật, do đó bài toán quy về tìm kiếm chìa khoá mật mã K, hay chìa khoá giải mã K’’, nếu hệ mật mã có khoá phi đối xứng Để giải bài toán này giả thiết người thám mã biết thông tin về sơ đồ hệ mật mã được dùng, kể cả các phép lập mã và giải mã tổng quát E và D Ngoài

ra, người thám mã có thể biết thêm một số thông tin khác, tuỳ theo những thông tin được biết thêm mà ta có thể phân loại bài toán thám mã thành các bài toán cụ thể sau:

-Bài toán thám mã chỉ biết bản mã: đây là bài toán phổ biến nhất, khi

người thám mã chỉ biết một bản mật mã y

-Bài toán thám mã khi biết cả bản rõ: người thám mã biết một bản mật

mã y cùng với bản rõ tương ứng x

Trang 20

-Bài toán thám mã khi có bản rõ được chọn: người thám mã có thể chọn

một bản rõ x, và biết bản mật mã y Điều này có thể xảy ra khi người thám mã

tạm thời chiếm được máy lập mã

-Bài toán thám mã khi có bản mã được chọn: người thám mã có thể chọn

một bản mật mã y và biết bản rõ tương ứng x Điều này có thể xẩy ra khi người

thám mã chiếm được tạm thời máy giải mã

1.4.2 Tính an toàn của một hệ mật mã

Tính an toàn của một hệ thống mật mã phụ thuộc vào độ khó khăn của bài toán thám mã khi sử dụng hệ mật mã đó Người ta đã đề xuất một số cách hiểu cho khái niệm an toàn của hệ thống mật mã, để trên cơ sở đó ta nghiên cứu tính an toàn của nhiều hệ mật mã khác nhau

-An toàn vô điều kiện: Giả thiết người thám mã có được thông tin về bản

mã Nhưng theo quan niệm lý thuyết thông tin, nếu những hiểu biết về bản mã không thu hẹp được độ bất định về bản rõ đối với người thám mã, thì hệ mật mã

là an toàn vô điều kiện, hay theo thuật ngữ của C.Shannon, hệ là bí mật hoàn toàn Như vậy, hệ là an toàn vô điều kiện, nếu độ bất định về bản rõ sau khi thám mã có được thông tin về bản mã bằng độ bất định về bản rõ trước đó Tính

an toàn vô điều kiện đã được chứng minh bằng một số hệ mật mã khoá đối xứng

-An toàn được chứng minh: một hệ thống mật mã được xem là có độ an toàn được chứng minh nếu ta có thể chứng minh được là bài toán thám mã đối với hệ thống đó là khó tương đương với một bài toán khó đã biết như bài toán phân tích một số nguyên tố thành tích của các thừa số nguyên tố

Trang 21

-An toàn về mặt tính toán: hệ mật được xem là an toàn về mặt tính toán, nếu mọi phương pháp thám mã đã biết đều đòi hỏi một nguồn năng lực tính toán vượt quá mọi khả năng cho phép kể cả các phương tiện tính toán Nói theo ngôn ngữ của lý thuyết về độ phức tạp tính toán, là bao hàm cả khái niệm an toàn theo nghĩa được chứng minh nói trên

1.5 Một số bài toán về an toàn và bảo mật thông tin

Chúng ta đang sống trong một thời đại bùng nổ thông tin Do vậy, nhu cầu trao đổi, cập nhật thông tin qua các phương tiện thông tin đại chúng ngày càng phát triển Và cùng với sự phát triển đó thì ngày càng đòi hỏi tính bảo mật và an toàn của thông tin ngày càng to lớn Có nhiều bài toán khác nhau về yêu cầu an toàn thông tin tuỳ theo những tình huống khác nhau, nhưng có một số bài toán chung nhất mà ta hay thường gặp là:

- Bảo mật: giữ thông tin bí mật đổi với tất cả mọi người trừ những người có thẩm quyền và những người biết thông tin đó

- Toàn vẹn thông tin: đảm bảo thông tin không bị thay đổi, xuyên tạc

do cá nhân hay tổ chức nào đó không được phép

- Nhận thực một thực thể: xác nhận danh tính của một thực thể như thẻ tín dụng, một người,…

- Nhận thực một thông báo: xác định nguồn gốc của một thông báo được gửi đến

- Chữ ký: một cách để gắn kết một thông tin với một thực thể, dùng trong bài toán nhận thực một thông báo cũng như trong nhiều bài toán nhận thực khác

Trang 22

- Uỷ quyền: chuyển một thực thể khác quyền được đại diện hoặc được làm một việc gì đó

- Cấp chứng chỉ: cấp một sự xác nhận thông tin bởi một thực thể được tín nhiệm

- Báo nhận: xác nhận một thông báo đã nhận hay một dịch vụ đã được thực hiện

- Ẩn danh: che giấu danh tính của một thực thể tham gia trong một tiến trình nào đó (thường dùng trong việc giao dịch tiền điện tử)

Trang 23

CHƯƠNG 2

HỆ MẬT MÃ CÔNG KHAI RSA

2.1 Sơ lược về hệ mật mã khoá công khai

2.1.1 Sơ lược về hệ mật mã công khai

Sự ra đời của khái niệm hệ mật mã khoá công khai là một tiến bộ có tính chất bước ngoặt trong lịch sử mật mã nói chung, gắn liền với sự phát triển của khoa học tính toán hiện đại Người ta xem thời khởi đầu của bước ngoặt này đó

là sự xuất hiện ý tưởng của W.Diffie và M.E.Hellman được trình bày vào tháng

6 năm 1976 tại Hội nghị quốc gia hàng năm của AFIPS (Hoa Kỳ) trong bài Multiuser crytographic techniques Trong bài đó, cùng ý tưởng chung, hai tác giả cũng đã đưa ra những ví dụ cụ thể để thực hiện ý tưởng đó, và mặc dù các thí dụ trên chưa có ý nghĩa thuyết phục ngay đối với tác giả thì ý tưởng về các

hệ mật mã khoá công khai cũng đã rõ ràng và có sức hấp dẫn đối với mọi người

Và ngay sau đó, công việc tìm kiếm những thể hiện cụ thể có khả năng ứng dụng trong thực tế đã bắt đầu thu hút sự quan tâm của các chuyên gia Một năm sau, năm 1977 R.L.Rivest, A.Shamir và L.M.Adleman đã đề xuất một hệ cụ thể

về mật mã khóa công khai mà độ an toàn của hệ mật dựa vào bài toán khó:

“phân tích số nguyên tố thành tích các thừa số nguyên tố” Sau này hệ mật này

đã trở thành một hệ mật nổi tiếng và mang tên là RSA (lấy từ ba chữ cái viết tắt tên của ba người này) và nó được sử dụng rộng rãi trong thực tiễn bảo mật và an toàn thông tin Cũng vào thời gian đó, M.O.Rabin cũng đề xuất một hệ mật khoá công khai dựa trên bài toán số học khó nói trên Liên tiếp, sau đó nhiều hệ mật

mã khoá công khai được đề xuất

Trang 24

2.1.2 Một số bài toán cơ bản

Ta sẽ nhắc lại một số bài toán số học được sử dụng trong quá trình xây dựng các hệ mật mã khoá công khai

Bài toán phân tích số nguyên tố thành thừa số nguyên tố:

Cho một số nguyên dương n, tìm tất cả các ước số nguyên tố của nó, hay

là tìm dạng phân tích chính tắc của a k

k a a

p p p

2 1

 , trong đó pi là các số nguyên tố cùng cặp khác nhau, các a i 1 và là các số tự nhiên dương

Bài toán này có liên quan chặt chẽ tới các bài toán thử tính nguyên tố hay thử tính hợp số của một số nguyên, nhưng với những gì mà ta đã biết đến nay,

nó dường như khó hơn nhiều so với hai bài toán thử tính nguyên tố và hợp số

Trong lý thuyết mật mã, bài toán này thường được sử dụng với các dữ

liệu n là số nguyên Blum, tức là các số nguyên dương có dạng tích của hai số

nguyên tố lớn nào đó

Bài toán RSA (Rivest-Shamir-Adleman):

Cho số nguyên dương n là tích của hai số nguyên tố lẻ khác nhau, một số nguyên dương e sao cho usc(e,(n))1 (ở đây usc là viết tắt của ước số chung lớn nhất của hai số nào đó), và một số nguyên c Ta phải tìm một số nguyên m sao cho m ec (mod n)

Điều kiện usc(e,(n))1 để bảo đảm cho việc với mỗi số nguyên

}, ,

1

,

c có đúng một số m 0,1, ,n } sao cho m ec (mod n)

Dễ dàng thấy được rằng, nếu biết hai thừa số nguyên tố của n tức là đã

Trang 25

được de1mod(n), và do đó sẽ tìm được mc d modn Như vậy, bài toán RSA có thể quy dẫn trong thời gian đa thức về bài toán phân tích số nguyên tố Bài toán thặng dư bậc hai:

Ký hiệu Legendre là một khái niệm trong lý thuyết số Nó được đặt tên của nhà toán học Pháp Adrien-Marie Legendre và gắn với khái niệm thặng dư bậc hai

Ký hiệu Legendre được định nghĩa như sau: Nếu n là số nguyên tố lẻ và

a là một số tự nhiên, thì ký hiệu Legendre

 0 nếu n chia hết cho a

 1 nếu a là thặng dư bậc hai modn - nghĩa là tồn tại số nguyên k sao cho k 2 a(modn)

 -1 nếu a không là bình phương của modn

Ký hiệu Jacobi là tổng quát hoá của ký hiệu Legendre Nó được đặt tên

nhà toán học Carl Gustav Jakob Jacobi Ký hiệu Jacobi 

k a

a

p p

p

a p

a p

a n

2 1

trong đó tất cả các ký hiệu bên phải

là ký hiệu Legendre

Khi nói về dạng phân tích tiểu chuẩn của số tự nhiên thì ta có: Với mọi

số tự nhiên lớn hơn 1 có thể viết một cách duy nhất (không kể sự sai khác về thứ

tự các thừa số) thành tích các thừa số nguyên tố dưới dạng sau:

Trang 26

k a k a

a

p p

đẳng thức trên được gọi là dạng phân tích tiểu chuẩn của n

Do đó, ta có bài toán sau: Cho một số nguyên lẻ n là hợp số, và một số

nguyên a Tập tất cả các số a có ký hiệu Jacobi  1

Hãy quyết định xem

a có là thặng dư bậc hai theo modn hay không?

Trong lý thuyết mật mã, bài toán này cũng thường được xét với trường

hợp n là số nguyên Blum, tức là n là tích của hai số nguyên pq, np q

Nếu a là thặng dư bậc hai theo modn khi và chỉ khi  1

thức về bài toán phân tích sô nguyên Mặt khác, nếu không biết cách phân tích n

thành thừa số nguyên tố thì cho đến nay, không còn cách nào giải được bài toán thặng dư bậc hai trong thời gian là đa thức Tức là bài toán thặng dư bậc hai và bài toán phân tích số nguyên tố là hai bài toán có độ khó tương đương nhau

Bài toán tìm căn bậc hai mod n:

Cho một số nguyên lẻ n là hợp số Blum, và một số a  Q n , tức a là một

thặng dư bậc hai theo mod Hãy tìm một căn bậc hai của a theo n mod , tức là n

sao cho x 2 a(modn)

Nếu biết phân tích n thành thừa số nguyên tố, n = p.q thì bằng cách giải

các phương trình x2  a theo modp và modq, rồi sau đó kết hợp với các

Trang 27

theo mod , tức là căn bậc hai của a theo n mod cần tìm Vì phương trình n

a

x 2 có hai nghiệm (tương ứng theo mod p và modq), nên kết hợp lại được

bốn nghiệm, tức là bốn căn bậc hai của a theo mod Người ta đã tìm được một n

số thuật toán tương đối đơn giản trong thời gian đa thức như giải phương trình

)(mod

về số nguyên lớn áp dụng vào lý thuyết mật mã

Xét hệ phương trình đồng dư sau:

)(mod

)(mod

21 2

1 1

k

a x

m a

x

m a

x

Trong đó m 1 ,m 2 ,…,m k đôi một nguyên tố cùng nhau Với k = 3 và m 1 = 3,

m 2 = 5, m 3 = 7 trong bài toán của ông

Định lý: Hệ phương trình đồng dư nói trên có nghiệm duy nhất theo

mođun M = m 1 m 2 m k

Là: xa1.M1.y1a2.M2.y2  a k.M k.y k(modM)

trong đó:

k k

m

M M m

M M m

M

2 2 1 1

)(mod)

(), ,(mod

)(),(mod)

Trang 28

Ví dụ: Giải hệ phương trình đồng dư sau:

) 5 (mod 3

) 3 (mod 2

x x x

Như vậy x có dạng x = 68 + k.105, k là số nguyên

Như vậy, bài toán căn bậc hai mod có thể quy dẫn trong thời gian đa n

thức về bài toán phân tích số nguyên

2.2 Mô tả hệ mật mã RSA

2.2.1 Sơ đồ của hệ mật mã RSA

Mã RSA được tìm ra bởi ba nhà toán học R.Rivest, A.Shamir và

L.Adleman Mã RSA được hình thành rất đơn giản từ ba số tự nhiên n, e, và d

có các tính chất sau:

- n là tích của hai số nguyên tố lớn p và q Trong ứng dụng thực tế

Trang 29

- e là khoá mã hoá dùng cho người gửi

- d là khoá giải mã dùng cho người nhận

- Ứng với một cặp {p, q} có thể có nhiều cặp {e, d}, tuy nhiên với mỗi

e lại chỉ có đúng một d và ngược lại

Để xây dựng một hệ mật mã khoá công khai RSA, ta chọn trước một số

nguyên tố n = p.q là tích của hai số nguyên tố lớn Ta chọn e sao cho

1

))

(

,

(e  n, và tính số d sao cho: e.d 1(mod(n))

Mỗi cặp khóa K = (K’, K’’), với K’ = (n,e) và K’’ = d sẽ là một cặp khoá

của hệ mật mã RSA cụ thể cho những người tham gia

Như vậy, sơ đồ chung của hệ mật mã RSA được định nghĩa bởi danh

x K

E( ', ) emod , với mọi x  P

n y y K

D( '' , )  dmod , với mọi y  C

Để chứng minh định nghĩa trên là hợp thức, ta phải chứng minh rằng với

mọi cặp khoá K = (K’, K”), và với mọi x  P ta đều có:

D(K”, S(K”, x)) = x

Trang 30

Định lý Euler: Cho a và n là hai số nguyên dương và là nguyên tố cùng nhau (a, n) = 1 Khi đó: a (n) 1(modn) Trong đó  (n) là hàm Euler của n

Ta biết rằng e.d 1(mod(n)) nên ta có thể viết e.dt.(n)1 Nếu x nguyên tố với n thì từ định lý Euler ở trên ta có:

x n x

x x

x x K E K

D( ', ( ', )) edt (n)1  t (n) (mod )

Nếu x không nguyên tố với n, thì x chia hết cho p và là nguyên tố cùng nhau với q, hoặc x chia hết cho q và là nguyên tố cùng nhau với p và

)1)(

1 ) (

p x

xt  n  

) (mod1

) (

q x

xt  n  

Từ đó suy ra: x t (n)1  x(modn), tức là D(K”, S(K’, x)) = x

Ví dụ sau sẽ trình bầy rõ hơn về quá trình trên:

Trang 31

+Một người B muốn gửi cho A một thông báo x = 5234673, sẽ dùng khoá công khai để tạo bản mật mã y:

2.3 Quá trình thực hiện hệ mật mã RSA

Để thực hiện hệ mật mã RSA cho một mạng truyền tin bảo mật, ngoài

việc xây dựng các chương trình tính toán hàm E (với tham biến đầu vào là n, e

và x) và hàm D (với tham biến đầu vào là n, d và y), ta còn phải chọn một bộ: n,

d, e để tạo các khoá công khai K’ và khoá bí mật K’’ Hệ mật mã chỉ có khả năng bảo mật cao khi n = p.q là số nguyên tố rất lớn và do đó p, q cũng phải là những số nguyên tố lớn Việc tính toán các số e, d hay quá trình thực hiện các phép tính số học trên các số nguyên tố lớn do đó p, q cũng phải là những số

nguyên tố rất lớn tức là n 10 200

Trong quá trình tính toán các số e, d hay quá trình thực hiện các hàm S,

D đều chủ yếu là quá trình thực hiện các phép toán số học trên các số nguyên tố

lớn Và quá trình tìm d cũng phải thoả mãn điều kiện sau: d > p, d > q

2.4 Tính bảo mật của RSA

Bài toán thám mã khi chỉ biết bản mã đối với hệ mật mã RSA là: biết

khoá công khai K’ = (n, e), biết bản rõ yx e modn , tìm x Bài toán này chính

Trang 32

là bài toán RSA Bài toán RSA hay chính là bài toán thám mã RSA là có độ khó tương đương với bài toán phân tích một số nguyên thành thừa số nguyên tố Do

đó, giữ tuyệt đối mật mã khoá bí mật d, hay giữ tuyệt mật các thừa số p, q là có

ý nghĩa rất lớn trong việc bảo vệ tính an toàn của hệ mật mã RSA

Một mạng truyền tin bảo mật sử dụng sơ đồ các hệ mật mã RSA được xem là an toàn nếu tuân thủ các điều kiện cơ bản sau: mỗi một người nếu muốn

thám mã một bản mật mã nào đó thì phải lựa chọn các số n, e, d là của riêng mình Trong quá trình chọn n thì cũng đồng nghĩa với việc chọn các thừa số nguyên tố p, q của n sao cho n = p.q và do có q, p nên tính được

)1)(

có thể xảy ra Sau đây là một số điểm cần lưu ý:

2.4.1 Dùng modun n chung

Giả sử có hai người cùng thám mã A và B cùng sử dụng một modun n chung trong khoá công khai Chẳng hạn A chọn khoá công khai của mình là (n, e) và giữ khoá bí mật là d, còn B chọn khoá công khai là (n, a) và giữ khoá bí mật là b Một người tham gia thám mã thứ ba C gửi một văn bản cần bảo mật x

đến cả A và B thì dùng khoá công khai nói trên để gửi cho A bản mật mã

n

x

yemod và gửi đến B bản mật mã zx amodn Chính vì vậy một người

Trang 33

thám mã O nào đó có thể dựa trên những thông tin n, e, a, y, z nêu trên để phát hiện ra bản rõ x như sau:

+1) ce1moda

+2)

a

e c

h 1

+3) xy c z h 1modn

Thực vậy, theo định nghĩa trên thì ce - 1 chia hết cho a, và tiếp tục ta có:

y c h 1mod  ec a(ec1)/a 1mod  ec ec1 1mod 

Như vậy trong trường hợp này việc truyền tin bảo mật không còn an toàn Vì vậy ta cần phải tránh việc khi dùng hệ mật RSA để tổ chức mạng truyền

tin bảo mật, cần tránh dùng chung modun n

2.4.2 Khi số mũ lập mã e nhỏ

Để cho việc tính toán hàm lập mã được hiệu quả, ta dễ có xu hướng chọn

số mũ e của hàm lập mã là một số nguyên nhỏ để dễ tính toán chẳng hạn như e

= 3 Nhưng nếu trong một mạng truyền tin bảo mật dùng hệ mật mã RSA, nếu

có nhiều người cùng chọn một số mũ lập mã e nhỏ và giống nhau thì sẽ có nguy

cơ bị tấn công bởi người thám mã có thể làm những việc như sau để tìm ra bản

rõ: Giả sử có ba người chọn khoá công khai lần lượt là (n 1 , e), (n 2 , e), (n 3 , e) với cùng số mũ e = 3 Người A gửi một thông báo x cho cả ba người trên và để bảo

mật cho bản mã thì A gửi bản mã c ix3modn i cho người thứ i Lúc này ba modun n i là khác nhau nên từng cặp nguyên tố cũng khác nhau Một người thám

mã có thể dùng cách sau để tìm một số m sao cho 0m  n1n2n3 thoả mãn đồng thời ba biểu thức sau:

Trang 34

ba theo nghĩa số học thông thường: tìm được căn bậc ba của m tức là ta đã tìm được x như vậy ta sẽ thu được bản rõ

2.4.3 Lợi dụng tính chất nhân của hàm lập mã

Ta chú ý rằng hàm lập mã f(x) x e modn có tính nhân, tức là

)()

(  là một phép hoán vị trên tập Zn = {0, 1, …, n-1}, do đó với mọi c  Zn nếu ta thực hiện lặp phép lập mã

để được:

,

mod, ,

mod,

mod

Trang 35

Cứ tiếp tục như vậy ta sẽ tìm được một số k1 sao cho

c n

c

c ke k mod  Nếu c là bản mã của một bản rõ x nào đó, c x e n

mod

thì người thám mã có thể xuất phát từ c thực hiện lặp phép lập mã như trên sẽ

tìm được số k  1 nhỏ nhất sao cho c kc Và khi đó, ta sẽ có số hạng trước

đó c k-1 = x là bản rõ cần tìm Thuật toán về hình thức là khá đơn giản, nhưng

thực hiện được chúng là một quá trình không đơn giản vì số phép lặp cần thực

hiện sẽ là khá lớn khoảng n! với n khoảng 200 chữ số thập phân Vì vậy nguy cơ

bị thám mã bằng thuật toán trên là không đáng ngại lắm đối với tính an toàn của

hệ mật RSA

2.4.5 Về khả năng che giấu của bản mật mã

Mật mã sở dĩ nó giữ được bí mật là nhờ vào khả năng che giấu thông tin

ở trong đó Tức là bản mã y khó lòng tìm được thông tin nào để phát hiện ra bản

rõ x Ta nói, bản rõ x là không che giấu được qua phép lập mã RSA

n x

không đáng kể trong hệ mật này Đó là những bản rõ với x = -1, 0 ,1 modn (vì

số mũ e luôn là số lẻ) Người ta đã chứng minh được rằng nếu n = p.q thì số các

bản rõ x  Zn không che giấu được là bằng

(1 + usc(e – 1, p - 1)).(1 + usc(e – 1, q - 1))

Vì e – 1, p – 1, q – 1 là các số chẵn, nên số đó ít nhất là 9 nên mỗi hệ mật

RSA có ít nhất 9 bản rõ không che giấu được Nhưng thường thì n rất lớn do đó

Trang 36

p, q cũng rất lớn, nên tỷ lệ các bản rõ không che giấu được là rất nhỏ và không

đáng kể Do đó, khả năng gặp các bản rõ không che giấu được trong hệ mật RSA là không tạo nên một nguy cơ lớn đối với hệ mật mã RSA

Trang 37

CHƯƠNG 3

MỘT SỐ KIẾN THỨC CÓ LIÊN QUAN

3.1 Lý thuyết lưới (Lattice Theory)

3.1.1 Giới thiệu

Lưới là một nhóm cộng rời rạc trong không gian Rn Lý thuyết lưới xuất hiện từ thế kỷ 18 với nghiên cứu của Lagrange, sau đó nó thu hút được khá nhiều sự quan tâm của các nhà toán học như: Gauss,…

Một lưới trong không gian Rn thì có thể vô hạn cơ sở nhưng trong đó lại tồn tại một số cơ sở này hữu dụng hơn các cơ sở khác theo một định nghĩa nào

đó Chính vì vậy mà bài toán rút gọn cơ sở đã nảy sinh từ rất lâu Mục đích của bài toán này là tìm những cơ sở lưới mà nó chứa những vector nhỏ và gần như

là vuông góc với nhau

Đến năm 1982, bài toán rút gọn cơ sở đã được một số nhà toán học đề xuất một thuật toán có thời gian đa thức (thường gọi là thuật toán LLL hay L3)

để tìm cái gọi là cơ sở LLL tối thiểu và nó được áp dụng vào việc phân tích các

đa thức hữu tỷ trong thời gian đa thức Các thuật toán này đóng một vài trò quan trọng trong nhiều lĩnh vực của toán học và trong khoa học máy tính Đặc biệt, vai trò quan trọng của chúng đã được phát hiện nhanh chóng trong mật mã học, chúng được sử dụng vào việc thám mã các hệ mật dựa trên bài toán Knapsack,

hệ mật RSA Chính vì vậy các nhà mật mã học đã tìm ra một hướng ứng dụng mới của bài toán và thuật toán cơ sở lưới

Trang 38

3.1.2 Một số khái niệm và tính chất của lý thuyết lưới

Lưới là một nhóm cộng rời rạc L trong không gian Euclide n chiều Rn

hay cụ thể hơn ta định nghĩa:

Định nghĩa 1: Một tập L gồm tập hợp tất cả các tổ hợp tuyến tính nguyên

của một số hữu hạn các véctơ độc lập tuyến tính cho trước b 1 ,b 2 ,…,b m trong không gian Rn được gọi là lưới sinh ra bởi: b 1 ,b 2 ,…,b m Hay: L = {xRn | x =

z 1 b 1 +z 2 b 2 +…+ z n b n , z iZ, i = 1,…,m}

Khi đó hệ vectơ {b 1 ,…,b n} được gọi là cơ sở của lưới L Người ta thường

gọi B = {b 1 ,…,b n} là cơ sở của lưới L

-Nếu b i  Zn , i = 1,…,m thì L được gọi là lưới nguyên

-Nếu m = n thì L được gọi là lưới đầy đủ số chiều

Như vậy lưới L có thể được xem như là ảnh của Zm đối với phép biến đổi tuyến tính có ma trận biến đổi là B do đó L = B.Zm Tuy nhiên một lưới L thì có thể có nhiều cơ sở khác nhau Thật vậy nếu M là một ma trận vuông nguyên cấp

m thì BMZ m là một tập con của BZm vì MZm  Zm Hơn nữa nếu |det M| = 1 thì

sẽ tồn tại M-1 là ma trận nghịch đảo của M và M-1 là một ma trận nguyên, do đó

M-1Zm  Zm hay Zm  MZm Ta có thể coi MZm là ảnh của Zm qua phép biến đổi với ma trận của ánh xạ là M Như vậy ta có BZm  BMZm, từ đây ta có BMZm = BZm hay BM cũng là sơ sở của lưới L = BZm

Định nghĩa 2: Gọi L = BZm là một lưới sinh bởi hệ véctơ {b 1 ,b 2 ,…,b m}

khi đó đơn hình vị P(B) của lưới L tương ứng với cơ sở B sẽ là: P(B) = {c 1 b 1 +c 2 b 2 +…+ c m b m  Rn, 0c i1, i = 1,…,m}

Trang 39

Định nghĩa 3: Nếu L là một lưới định thức của L được định nghĩa là thể tích m chiều của P(L), ký hiệu là det(L) Đặc biệt nếu L là lưới đầy đủ số chiều thì det(L) = |det B|

Bổ đề 1: Nếu B và B’ là các cơ sở lưới L thì sẽ tồn tại M và M’ là các ma trận vuông cấp m thoải mãn |det M| = 1, |det M’| = 1 và B= B’M’, B’ = BM

Bổ đề 2: Định thức của lưới L = BZm không phụ thuộc vào cách chọn cơ

sở B và det(L) = det(B t B)

Hệ quả 1: B là cơ sở lưới của L = BZm khi và chỉ khi tồn tại ma trận

vuông M cấp m thoả mãn B = B’M và |det M| = 1

Định nghĩa 4: Lưới đối ngẫu của lưới đầy đủ số chiều L  Rn là một tập

bao gồm tất cả các véctơ mà tích vô hướng của nó với các véctơ trong L là một

số nguyên Ký hiệu là L* Vậy: L* = {v R n | <v, u > Z, u  L}

3.1.3 Bài toán SVP và CVP

Đây là hai bài toán quan trọng nhất trong lý thuyết lưới đã được đưa ra từ rất lâu đó chính là bài toán CVP (Closest vecto problem) và bài toán SVP (Shortest vecto problem) Nội dung chính của chúng như sau:

Bài toán CVP (Closest vector problem):

Cho u là một vector trong không gian R n Trong các vectơ của lưới

L = BZm hãy tìm vectơ v sao cho khoảng cách từ v đến u là nhỏ nhất

Bài toán SVP (Shortest vector problem):

Hãy tìm vectơ v có độ dài nhỏ nhất trong lưới L = BZ m

Trang 40

chia số nguyên a cho số nguyên b được thương là một số nguyên q, a = b.q Tức

là a là bội của b và b là ước của a ký hiệu là b|a Như vậy ta thấy một cách dễ

dàng rằng số 1 là ước số của mọi số nguyên bất kỳ và số 0 là bội số của mọi số

nguyên bất kỳ, mọi số nguyên a đều là ước đồng thời lại là bội của chính nó

Còn trong trường hợp số nguyên a không chia hết cho số nguyên b ( a, b > 1) Khi thực hiện phép chia này ta được hai số là q và r sao cho:

a = b.q + r (0< r < b)

Số q được gọi là thương của phép chia a cho b ký hiệu là a div b, và r là

số dư của phép chia a cho b ký hiệu là a mod b

Một số nguyên d được gọi là ước số chung của hai số nguyên a và b nếu d|a và d|b Số nguyên d được gọi là ước số chung lớn nhất của a và b nếu d > 0

và d là ước số chung của a và b và mọi ước số chung của a và b đều là ước số của d Ta ký hiệu ước số chung lớn nhất của a và b là usc(a, b) Ta thấy với mọi

số nguyên dương a ta có usc(a, 0) = a, ta cũng sẽ quy ước usc(0, 0) = 0

Một số nguyên a > 1 được gọi là một số nguyên tố nếu a không là ước của số nào ngoài 1 và a; và được gọi là hợp số nếu không phải là số nguyên tố

Ngày đăng: 03/08/2016, 16:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] D. Boneh. Cryptanalysis of RSA with private key d less than N 0.292 . Springer-verlag, 1999 Sách, tạp chí
Tiêu đề: D. Boneh. Cryptanalysis of RSA with private key d less than N"0.292
[4] G. Durfee. Cryptanalysis of RSA using Algebraic and Lattic methods. Standford university, 2002 Sách, tạp chí
Tiêu đề: G. Durfee. Cryptanalysis of RSA using Algebraic and Lattic methods
[1] D. Boneh, Twenty years of attacks on the RSA cryptosystem. Noties of American Mathenatial Society (AMR), 1999 Khác
[3] D. Coppersmith. Small solutions to polynomial equations and low- exponent RSA vulnerabilities. Journal of Cryptology, 1997 Khác
[5] Phan Đình Diệu – Lý thuyết mật mã và an toàn thông tin, Khoa Công nghệ - Đại Học Quốc Gia Hà Nội Khác
[6] Journal. Athematical Attacks on RSA Cryptosystem, University of Jondan, 2006 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Sơ đồ mã hoá và giải mã. - Một số tấn công vào hệ mật mã RSA
Hình 1.1 Sơ đồ mã hoá và giải mã (Trang 6)
Hình 1.3: Sơ đồ mã hoá bất đối xứng  Một trong những hạn chế của các thuật toán mã hoá bất đối xứng là tốc - Một số tấn công vào hệ mật mã RSA
Hình 1.3 Sơ đồ mã hoá bất đối xứng Một trong những hạn chế của các thuật toán mã hoá bất đối xứng là tốc (Trang 15)
Hình 1.4: Sơ đồ hệ thống mã hóa lai  Nhìn  vào  mô  hình  chúng  ta  có  thể  hình  dung  được  hoạt  động  của  hệ  thống mã hoá này như sau: - Một số tấn công vào hệ mật mã RSA
Hình 1.4 Sơ đồ hệ thống mã hóa lai Nhìn vào mô hình chúng ta có thể hình dung được hoạt động của hệ thống mã hoá này như sau: (Trang 16)
2.2.1  Sơ đồ của hệ mật mã RSA - Một số tấn công vào hệ mật mã RSA
2.2.1 Sơ đồ của hệ mật mã RSA (Trang 28)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w