Nghiên cứu một số giao thức chia sẻ bí mật và ứng dụng

Download miễn phí Khóa luận Nghiên cứu một số giao thức chia sẻ bí mật và ứng dụng





MỤC LỤC

LỜI CẢM ƠN . .1

MỤC LỤC .2

GIỚI THIỆU KHÓA LUẬN . .4

Chương 1. CÁC KHÁI NIỆM CƠ BẢN .5

 1.1. CÁC KHÁI NIỆM TRONG TOÁN HỌC .5

 1.1.1. Một số khái niệm trong số học . 5

 1/. Số nguyên tố . . .5

 2/. Số nguyên tố cùng nhau . 5

 3/. Định nghĩa hàm Φ Euler.5

 4/. Không gian Zn và Zn* . .6

 1.1.2. Một số khái niệm trong đại số 7

 1/. Khái niệm nhóm, nhóm con . . . .7

 2/. Nhóm Cyclic . . .7

 1.1.3. Một số khái niệm về độ phức tạp . . 8

 1.2. VẤN ĐỀ MÃ HÓA . 9

 1.2.1. Định nghĩa . .9

 1.2.2. Mã cổ điển . .10

 1.2.2.1. Mã dịch chuyển . 10

 1.2.2.2. Mã thay thế .10

 1.2.2.3. Mã Affine . .11

 1.2.2.4. Mã Vingenere . . 11

 1.2.2.5. Mã Hill . . 12

 1.2.2.6. Mã hoán vị . 12

 1.2.3. Hệ mã khóa công khai . . 13

 1.2.3.1. Hệ mã RSA . 13

 1.2.3.2. Hệ mã Elgamal.14

Chương 2: VẤN ĐỀ CHIA SẺ BÍ MẬT . .16

 2.1. KHÁI NIỆM CHIA SẺ BÍ MẬT . . 16

 2.2. SƠ ĐỒ CHIA SẺ BÍ MẬT . . .18

 2.2.1. Khái niệm sơ đồ chia sẻ bí mật .18

 2.2.2. Các thành phần của sơ đồ chia sẻ bí mật . .20

 2.2.3. Giao thức trong sơ đồ chia sẻ bí mật . .20

 2.3. ỨNG DỤNG . . .21

 

 

 

 2.4. MỘT SỐ PHƯƠNG PHÁP “CHIA SẺ BÍ MẬT” . .23

 2.4.1. Giao thức “chia sẻ bí mật ” SHAMIR .23

 2.4.1.1. Khái niệm sơ đồ ngưỡng A(t,m) . . . . .23

 2.4.1.2. Giao thức “chia sẻ bí mật” Sharmir . . . 25

 2.4.1.3. Ưu điểm của giao thức chia sẻ bí mật của Shamir . .31

 2.4.2. Giao thức chia sẻ bí mật bằng mạch đơn điệu . . . .32

 2.4.2.1. Khái niệm mạch đơn điệu 32

 2.4.2.2. Chia sẻ khóa bí mật K dựa vào “mạch đơn điệu” .35

 2.4.2.3. Ưu điểm của giao thức “chia sẻ bí mật” bằng “mạch đơn điệu”.37

Chương 3: THỬ NGHIỆM LẬP TRÌNH “CHIA SẺ BÍ MẬT” . ,.38

 3.1. CÔNG NGHỆ . .38

 3.2. CÁC THÀNH PHẦN CỦA CHƯƠNG TRÌNH . 38

 1/. Chia sẻ khóa bí mật theo giao thức “chia sẻ bí mật” Shamir. . . 38

 2/. Khôi phục khóa bí mật bằng giải hệ phương trình tuyến tính . .40

 3/. Khôi phục khóa bí mật bằng công thức nội suy Lagrange .45

 4/. Chia sẻ khóa bí mật dựa vào mạch đơn điệu .46

 5/. Khôi phục khóa bí mật dựa vào mạch đơn điệu . . .47

 3.3. GIAO DIỆN CHƯƠNG TRÌNH.48

 3.4. CÁCH SỬ DỤNG CHƯƠNG TRÌNH.49

 3.5. MÃ NGUỒN CỦA CHƯƠNG TRÌNH.54

KẾT LUẬN . .65

BẢNG CHỮ CÁI VIẾT TẮT.66

TÀI LIỆU THAM KHẢO . .67

 





Để tải tài liệu này, vui lòng Trả lời bài viết, Mods sẽ gửi Link download cho bạn ngay qua hòm tin nhắn.

Ket-noi - Kho tài liệu miễn phí lớn nhất của bạn


Ai cần tài liệu gì mà không tìm thấy ở Ket-noi, đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


à một hàm giải mã dk є D
dk: C → P sao cho dk(ek(x)) = x với mọi x є P
Trong thực tế, P và C thường là bảng chữ cái (hay tập các dãy chữ cái).
* Các loại mã hóa: có 2 loại:
- Mã khóa đối xứng bao gồm:
+ Mã cổ điển.
+ Mã hiện đại.
- Mã khóa công khai.
1.2.2. Mã cổ điển
1.2.2.1. Mã dịch chuyển
Định nghĩa: Mã dịch chuyển: (P, C, K, E, D)
P = C = K = Z26 với k є K, định nghĩa ek(x) = (x + k) mod 26 , dk(y) = (y – k) mod 26
(x, y є Z26)
1.2.2.2. Mã thay thế
Định nghĩa: Mã thay thế: (P, C, K, E, D)
P = C = Z26, K = S (Z26) Với mỗi π є K, tức là một hoán vị trên Z26, ta xác định
eπ(x) = π(x)
dπ(y) = π -1(y)
với x, y є Z26, π -1 là nghịch đảo của π
1.2.2.3. Mã Affine
Định nghĩa: Mã Affine: (P, C, K, E, D)
P = C = Z26, K = { (a, b) є Z26 x Z26 : (a, 26) = 1 }
với mỗi k = (a, b) є K ta định nghĩa: ek(x) = ax + b mod 26
dk(y) = a-1(y – b) mod 26
trong đó x, y є Z26
Với mã Affine, số các khoá có thể có bằng (số các số ≤ 26 và nguyên tố với 26) × 26, tức là 12 × 26 = 312. Việc thử tất cả các khoá để thám mã trong trường hợp này tuy khá mất thì giờ nếu tính bằng tay, nhưng không khó khăn gì nếu dùng máy tính. Do vậy, mã Affine cũng không phải là mã an toàn.
1.2.2.4. Mã Vingenere
Định nghĩa: Mã Vigenere: (P, C, K, E, D)
Cho m là số nguyên dương.
P = C = K = (Z26)m
với mỗi khoá k = (k1, k2,,km) є K có:
ek(x1, x2,, xm) = (x1 + k1, x2 + k2,, xm + km)
dk(y1, y2,, ym) = (y1 – k1, y2 – k2,, ym – km)
các phép cộng phép trừ đều lấy theo modulo 26
Chú ý: Mã Vigenere với m = 1 sẽ trở thành mã Dịch chuyển.
Tập hợp các khoá trong mã Vigenere mới m ≥ 1 có tất cả là 26m khoá có thể có. duyệt toàn bộ chừng ấy khoá để thám mã bằng tính tay thì khó, nhưng với máy tính thì vẫn là điều dễ dàng.
1.2.2.5. Mã Hill
Định nghĩa: Mã Hill: (P, C, K, E, D)
Cho m là số nguyên dương.
P = C = (Z26)m
K = { k є (Z26) m x m : (det(k), 26) = 1 }
với mỗi k є K định nghĩa:
ek(x1, x2,, xm) = (x1, x2,, xm).k
dk(y1, y2,, ym) = (y1, y2,,ym).k-1
1.2.2.6. Mã hoán vị
Định nghĩa: Mã hoán vị: (P, C, K, E, D)
Cho m là số nguyên dương.
P = C = Z26 , K = Sm
với mỗi k = π є Sm , ta có
trong đó π-1 là hoán vị nghịch đảo của π
1.2.3. Hệ mã khóa công khai
1.2.3.1. Hệ mã RSA
Hệ mật này sử dụng tính toán trong Zn, trong đó n là tích của 2 số nguyên tố phân biệt p và q. Ta thấy rằng f(n) = (p – 1).(q – 1).
Định nghĩa
Cho n = p.q trong đó p và q là các số nguyên tố. Đặt P = C = Zn và định nghĩa: K = {(n, p, q, a, b): n = p.q, p, q là các số nguyên tố,
a.b º 1 mod f(n)}
Với K = (n, p, q, a, b) ta xác định: eK = xb mod n
và dK = ya mod n
(x, y Î Zn). Các giá trị n và b được công khai và các gia trị p, q, a được giữ kín.
1.2.3.2. Mã Elgamal
Mô tả hệ mã Elgamal
Hệ mật mã ElGamal được T. ElGamal đề xuất năm 1985, dựa vào độ phức tạp của bài toán tính lôgarit rời rạc, và sau đó đã nhanh chóng được sử dụng rộng rãi không những trong vấn đề bảo mật truyền tin mà còn trong các vấn đề xác nhận và chữ ký điện tử.
Bài toán logarithm rời rạc trong Zp là đối tượng trong nhiều công trình nghiên cứu và được xem là bài toán khó nếu p được chọn cẩn thận. Cụ thể là không có một thuật toán thời gian đa thức nào cho bài toán logarithm rời rạc. Để gây khó khăn cho các phương pháp tấn công đã biết, p phải có ít nhất 150 chữ số và (p – 1) phải có ít nhất một thừa số nguyên tố lớn.
Hệ mật Elgamal là một hệ mật không tất định vì bản mã phụ thuộc vào cả bản rõ x lẫn giá trị ngẫu nhiên k do G chọn. Bởi vậy sẽ có nhiều bản mã được mã từ cùng một bản rõ.
Bài toán logarithm rời rạc trong Zp:
Đặc trưng của bài toán: I = (p, a, b) trong đó p là số nguyên tố, a Î Zp là
phần tử nguyên thuỷ (hay phần tử sinh), b Î Zp*
Mục tiêu: Hãy tìm một số nguyên duy nhất a, 0 £ a £ p – 2 sao cho:
aa º b (mod p)
Ta sẽ xác định số nguyên a bằng log a b.
Định nghĩa mã hoá công khai Elgamal trong Zp*:
Cho p là số nguyên tố sao cho bài toán logarithm rời rạc trong Zp là khó giải. Cho a Î Zp* là phần tử nguyên thuỷ. Giả sử P = Zp*, C = Zp* x Zp*. Ta định nghĩa: K = {(p, a, a, b): b º aa (mod p)}
Các giá trị p, a, b được công khai, còn a giữ kín.
Với K =(p, a, a, b) và một số ngẫu nhiên bí mật k Î Zp – 1, ta xác định:
eK(x, k) = (y1, y2).
Trong đó: y1 = ak mod p
y2 = x. bk mod p
với y1, y2 Î Zp* ta xác định:
dK(y1, y2) = y2(y1a) – 1 mod p
Chương 2. VẤN ĐỀ “CHIA SẺ BÍ MẬT”
2.1. KHÁI NIỆM “CHIA SẺ BÍ MẬT”.
Thông tin cần giữ bí mật (tin gốc: TG) được chia thành nhiều mảnh (TM) và trao cho mỗi người giữ một hay một số mảnh. Thông tin này có thể được xem lại, khi mọi nguời giữ các mảnh đều nhất trí. Các mảnh TM được khớp lại để được tin gốc TG.
- Thông tin cần giữ bí mật (tin gốc: TG) được chia thành nhiều mảnh (TM) và trao cho mỗi thành viên tham gia nắm giữ.
Thông tin bí mật các mảnh được chia
- Thông tin bí mật được xem lại, khi các mảnh TM được khớp lại sẽ được tin gốc TG.
Các mảnh được chia Thông tin bí mật
Ví dụ:
Có một khóa bí mật, nó quy định truy cập tới một file quan trọng, nếu khóa bí mật bị mất (có thể do người giữ khóa không đáng tin cậy, hay máy tính có bộ nhớ lưu giữ khóa bị phá hủy), thì file quan trọng trở thành không truy cập được. Một câu hỏi đặt ra là làm thế nào để khôi phục lại thông tin bí mật, vì vậy thông tin bí mật không nên do một người duy nhất nắm giữ.
Có các cách sau để chia sẻ thông tin mật:
+ Chia khóa bí mật thành các phần và phân phối các phần đến từng người là khác nhau, vì vậy nó phải chắc chắn tập con của những người này có thể cùng nhau tìm lại được khóa.
+ Chia dữ liệu thành vài đoạn dữ liệu và đưa cho nhiều người, vì vậy khôi phục lại đầy đủ dữ liệu dựa vào các đoạn này. Ví dụ, dữ liệu là file có tên là X và các đoạn dữ liệu là X1,X2,X3, XOR của chúng sẽ khôi phục lại X, cách này đạt được an toàn. Tuy nhiên, chúng ta cần tất cả 3 đoạn để khôi phục lại file.
Phương pháp “chia sẻ bí mật” được thể hiện bằng “sơ đồ ”, chỉ rõ cách thức “chia sẻ bí mật” và cách thức “khớp lại ” các mảnh bí mật.
2.2. SƠ ĐỒ CHIA SẺ BÍ MẬT
2.2.1. Khái niệm “sơ đồ chia sẻ bí mật”.
Sơ đồ “chia sẻ bí mật” là một cách để chia sẻ một bí mật ra nhiều phần, sau đó phân phối cho một tập hợp những người tham gia, sao cho các tập con nào đó trong số những người này được chỉ định, có khả năng khôi phục lại bí mật bằng cách kết hợp dữ liệu của họ.
Một sơ đồ chia sẻ bí mật là hoàn hảo, nếu bất kì một tập hợp những người tham gia mà không được chỉ định, sẽ tuyệt đối không thu được thông tin về bí mật.
Ví dụ:
Khi một cá nhân hay một tổ chức đáng tin cậy được ủy quyền phân phối khóa cho một tập các thành viên, họ phải đáp ứng yêu cầu: có một khóa bí mật, làm sao mỗi người giữ một bộ phận của khóa, khi những thành viên được chỉ định trước có thể tính ra khóa, những tập con thành viên khác thì không thể tính ra khóa được. Một sơ đồ phân phối khóa thỏa mãn yêu cầu trên là một sơ đồ chia sẻ bí mật.
- Mô hình của sơ đồ chia sẻ bí mật là:
2.2.2. Các thành phần của sơ đồ chia sẻ bí mật:
+ Người phân phối bí mật (Dealer): là người trực tiếp chia bí mật ra thành nhiều phần.
+ Những người tham gia nhận dữ liệu từ Dealer, kí hiệu P.
+ Nhóm có khả năng nhận dữ liệu, sau đó khôi phục được bí mật: là tập con của P, trong đó có các tập con có khả năng khôi phục bí mật.
Ví dụ:
Trong bỏ phiếu điện tử thì mỗi cử tri sẽ đóng vai trò là một Dealer, trong khi mỗi người kiểm phiếu sẽ đóng vai trò là người tham gia.
2.2.3. Giao thức trong sơ đồ chia sẻ bí mật.
Mọi sơ đồ “chia sẻ bí mật” đều tồn tại ít nhất 2 giao thức. Đó là:
+ Giao thức phân phối thông tin bí mật: Bí mật được Dealer phân phối tới tập những người tham gia.
+ Giao thức khôi phục thông tin bí mật: Trong đó thông tin bí mật được khôi phục lại bằng các gộp thông tin của những người tham gia nằm trong một tập hợp được chỉ định trước.
2.3. MỘT SỐ ỨNG DỤNG CỦA “CHIA SẺ BÍ MẬT” .
“Chia sẻ bí mật” được sử dụng trong trường hợp cần giữ bí mật các thông tin quan trọng và không thể tin tưởng bất kì người nào cả.
Một vài ứng dụng phổ biến của “chia sẻ bí mật” là:
- Mật khẩu (passwords) tốt là khó có thể ghi nhớ. Một người sử dụng thông minh sẽ sử dụng 1 sơ đồ chia sẻ bí mật để sinh ra 1 tập hợp của các phần để chuyển thành mật khẩu và lưu từng phần trong quyển địa chỉ của anh ta hay gửi các phần ở nơi khác nhau.
Mật khẩu đó có thể là khóa để lấy tiền trong ngân hàng của anh ta, Nếu một ngày anh ấy quên mật khẩu, anh ta có thể khôi phục 1 cách dễ dàng. Dĩ nhiên, nếu viết mật khẩu ngay trong sổ nhật ký sẽ đưa ra 1 sự đảm bảo nguy hiểm, như vậy sẽ bị kẻ thù ăn cắp. Nếu một sơ đồ chia sẻ bí mật được sử dụng, kẻ tấn công sẽ phải lấy trộm nhiều phần từ nhiều nơi khác nhau.
-Một ứng dụng tiêu biểu của “chia sẻ bí mật” là sử dụng trong hệ thống lập mã. Khóa mật mã được công khai, trong khi khóa khôi phục được giữ bí mật và được bảo vệ theo đường chia sẻ bí mật.
- Một Dealer có thể gửi t phần, tất cả những phần đó là cần thiết để khôi phục lại nguyên bản bí mật, tới từng người nhận, sử dụng t kênh truyền khác nhau. Một kẻ tấn công có...

Music ♫

Copyright: Tài liệu đại học ©