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

Nghiên cứu hệ thống bầu cử điện tử dựa trên mã đồng cấu

52 352 1

Đ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 52
Dung lượng 1,55 MB

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

Nội dung

Tính minh bạch giảm sút đồng nghĩa với việc sự tín nhiệm của nhân dân cũng giảm sút, tính an ninh trong quá trình vận chuyển các lá phiếu… Cùng với đó là quá trình chuẩn bị cơ sở vật chấ

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2

NGUYỄN THỊ LOAN

NGHIÊN CỨU HỆ THỐNG BẦU CỬ ĐIỆN TỬ

DỰA TRÊN MÃ ĐỒNG CẤU

Chuyên ngành: Toán ứng dụng

Mã số: 60 46 01 12

LUẬN VĂN THẠC SĨ TOÁN HỌC

Người hướng dẫn khoa học: TS Trần Văn Dũng

Trang 2

LỜI CẢM ƠN

Đầu tiên, tôi xin trân trọng cảm ơn Ban giám hiệu trường Đại học sư phạm Hà Nội 2, phòng sau đại học và các thầy cô giáo trong nhà trường đã giúp đỡ tạo điều kiện thuận lợi cho tôi trong suốt quá trình thực tập

Tôi xin trân trọng gửi lời cảm ơn tới thầy giáo TS Trần Văn Dũng, người đã nhiệt tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn tôi trong suốt quá trình thực hiện luận văn cao học Trong quá trình làm việc với thầy, tôi đã tiếp thu thêm được nhiều kiến thức bổ ích, những kinh nghiệm vô cùng quý báu trong suốt thời gian qua Sau cùng, cho phép tôi cảm ơn các bạn bè, gia đình đã giúp đỡ, ủng hộ tôi rất nhiều trong toàn bộ quá trình học tập cũng như nghiên cứu hoàn thành luận văn này

Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận văn còn nhiều thiếu sót, rất mong nhận được ý kiến góp ý của Thầy / Cô và các anh chị học viên

Hà Nội, ngày tháng năm 2016

Học viên thực hiện Nguyễn Thị Loan

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan:

Những kết quả nghiên cứu trình bày trong luận văn này là hoàn toàn trung thực, không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và pháp luật Việt Nam Trong quá trình làm luận văn tôi có tham khảo các liệu có liên quan và đã ghi rõ nguồn tài liệu tham khảo đó Những kiến thức tôi trình bày trong luận văn này chưa từng được trình bày hoàn chỉnh trong bất cứ tài liệu nào

TÁC GIẢ LUẬN VĂN

NGUYỄN THỊ LOAN

Trang 4

MỤC LỤC

MỞ ĐẦU 1

1 Lí do chọn đề tài 1

2 Mục đích nghiên cứu 2

3 Nhiệm vụ nghiên cứu 2

4 Đối tượng và phạm vi nghiên cứu 2

5 Dự kiến đóng góp mới 2

6 Phương pháp nghiên cứu 2

NỘI DUNG 3

CHƯƠNG 1: KIẾN THỨC CHUẨN BỊ 3

1.1 Số học modulo 3

1.1.1 Các phép toán trên modulo 3

1.1.1.1 Số nghịch đảo Modulo 4

1.1.1.2 Định lý Fermat 6

1.1.1.3 Định lí Euler 6

1.1.1.4 Định lí phần dư Trung Hoa 8

1.1.2 Logarit rời rạc 9

1.1.2.1 Bài toán logarit trên trường số thực R 9

1.1.2.2 Bài toán logarit trên trường hữu hạn 9

1.1.2.3 Bài toán logarit rời rạc 11

1.1.2.4 Bản chất của bài toán logarit rời rạc 11

1.2 Hệ mã khóa công khai 12

1.2.1 Mã khoá công khai RSA 12

1.2.2 Khởi tạo khóa RSA 12

1.2.3 Sử dụng RSA 13

1.2.4 Cơ sở của RSA 13

1.3 Mã Elgamal 14

1.3.1 Hệ mã hóa Elgamal 14

Trang 5

1.3.2 Khái niệm mã hóa đồng cấu 15

1.4 Chữ ký điện tử DSA 15

1.4.1 Tạo chữ ký DSA 15

1.4.2 Kiểm chứng chữ ký DSA 16

CHƯƠNG 2: MỘT SỐ GIAO THỨC AN NINH NÂNG CAO 18

2.1 Lược đồ chia sẻ thông tin mật Shamir 18

2.1.1 Phân phối mảnh cho các thành viên 19

2.1.2 Khôi phục khoá K từ t thành viên 20

2.1.3 Tính chất đồng cấu của hệ mã hóa Elgamal 22

2.1.4 Lược đồ chia sẻ bí mật Shamir phối hợp với hệ mã hóa Elgamal 25

2.2 Cam kết 28

2.3 Chứng minh không tiết lộ thông tin 29

2.4 Giao thức kết hợp 30

CHƯƠNG 3: PHƯƠNG PHÁP BẦU CỬ ĐIỆN TỬ DỰA TRÊNMÃ ĐỒNG CẤU 33

3.1 Bầu cử điện tử 33

3.2 Phương pháp dựa trên mã đồng cấu 33

3.2.1 Khởi tạo hệ thống 33

3.2.2 Công bố phiếu bầu 33

3.2.3 Phân phối phiếu 34

3.2.4 Kiểm tra tính nhất quán 34

3.2.5 Kiểm đếm 35

3.3 Trường hợp bầu số ứng cử viên tuỳ ý 40

KẾT LUẬN 46

DANH MỤC TÀI LIỆU THAM KHẢO 47

Trang 6

MỞ ĐẦU

1 Lí do chọn đề tài

Trong những năm trở lại đây, sự phát triển như vũ bão của các xu thế công nghệ thông tin là một điều tất yếu Máy móc thông minh dần thay thế nhiều hoạt động của con người trong xã hội hiện đại Bỏ phiếu điện tử chính là một trong những bước ngoặt lớn lao ấy

Phương thức bỏ phiếu truyền thống ngày nay gặp phải một số hạn chế, với những cử tri ở vùng sâu vùng xa, khoảng cách về địa lý sẽ phần nào ngăn cản quá trình bầu cử của mình Tính độc lập, quyền cá nhân, quyền riêng tư cũng bị ảnh hưởng lớn Tính minh bạch giảm sút đồng nghĩa với việc sự tín nhiệm của nhân dân cũng giảm sút, tính an ninh trong quá trình vận chuyển các lá phiếu… Cùng với đó

là quá trình chuẩn bị cơ sở vật chất, đào tạo nhân lực phục vụ cho cuộc bầu cử Đây quả là những khó khăn, thách thức vô cùng lớn

Trong khi đó, với hình thức bỏ phiếu điện tử, mọi người dân đều có thể tự mình lựa chọn phiếu bầu mang ý kiến cá nhân cho các ứng cử viên của họ, dù họ đang ở đâu, làm gì Hơn nữa, nó còn đảm bảo được tính cá nhân và quyền riêng tư trong mỗi lá phiếu của mình, đảm bảo an ninh do không mất quá trình vận chuyển thủ công từ nhiều địa điểm khác nhau đến hòm phiếu

Thứ hai, thay vì phải đào tạo đội ngũ cán bộ khổng lồ để phục vụ công tác bầu

cử, thì bỏ phiếu điện tử sẽ giảm tối đa về mặt nhân lực Đặc biệt, hình thức bỏ phiếu này đáp ứng nhu cầu bầu cử của những người trẻ tuổi, đó có thể là bầu cử qua điện thoại, bầu cử trực tuyến, thông qua Facebook, youtube…

Trên thế giới, khái niệm bỏ phiếu điện tử không còn xa lạ gì đối với các nước phát triển Tuy nhiên ở Việt Nam, đây vẫn còn là một trong những vấn đề tuy không hẳn là còn quá mới mẻ nhưng cũng chưa thực sự được phát triển phổ cập rộng rãi trong tất cả các lĩnh vực

Chính vì vậy, dưới sự hướng dẫn tận tình của thầy giáo TS Trần Văn Dũng,

em chọn lựa đề tài “NGHIÊN CỨU HỆ THỐNG BẦU CỬ ĐIỆN TỬ DỰA TRÊN

MÃ ĐỒNG CẤU” với mong muốn áp dụng kiến thức đã học, xây dựng thử nghiệm

Trang 7

mô hình ứng dụng bầu cử điện tử với độ an toàn bảo mật cao, chống gian lận trong quá trình bỏ phiếu

2 Mục đích nghiên cứu

- Tổ chức bầu cử điện tử đáp ứng yêu cầu của một bầu cử

- Có khả năng chịu lỗi, đảm bảo tính riêng tư và kết quả có thể được kiểm chứng tính đúng đắn

3 Nhiệm vụ nghiên cứu

- Nghiên cứu lược đồ chia sẻ thông tin mật Shamir chịu lỗi

- Sử dụng chứng minh không tiết lộ thông tin để cam kết tính nhất quán của phiếu bầu và các tham số chia sẻ mảnh phiếu

- Ứng dụng mã đồng cấu để hỗ trợ kiểm phiếu tự động đảm bảo tính riêng tư

4 Đối tượng và phạm vi nghiên cứu

- Đối tượng nghiên cứu: Nghiên cứu các vấn đề được thực hiện trong các

chương trình bầu cử điện tử an toàn

- Phạm vi nghiên cứu: nghiên cứu trên cơ sở toán học của một số phương pháp

bầu cử điện tử và xây dựng lược đồ bầu cử điện tử an toàn

5 Dự kiến đóng góp mới

Trình bày đầy đủ chi tiết cơ sở và ứng dụng trong luận văn

6 Phương pháp nghiên cứu

- Nghiên cứu lý thuyết và kiểm nghiệm qua các ví dụ cụ thể

- Xây dựng lược đồ ứng dụng tổ chức mô hình bầu cử điện tử đơn giản

Trang 8

NỘI DUNG CHƯƠNG 1: KIẾN THỨC CHUẨN BỊ

Chương này sẽ trình bày về các lý thuyết toán học để bổ trợ và xây dựng

phương pháp bầu cử điện tử dừa trên mã đồng cấu như lý thuyết về toán học

modulo, các bài toán Logarith rời rạc, hệ mã hóa công khai, mã Elgamal cũng như

các định lý Fermat, Euler, Tiếp đó, luận văn mô tả các khái niệm về chữ ký điện

tử DSA cách tạo và cách kiểm chứng chữ ký DSA được dùng trong việc xây dựng

một số giao thức an ninh nâng cao

1.1 Số học modulo

1.1.1 Các phép toán trên modulo

a Định nghĩa 1

Cho m là số nguyên dương Giả sử a, b là các số nguyên: Ta ký hiệu

a  b (mod m), khi và chỉ khi b = a + km trong đó k là số nguyên Khi đó ta nói a và

b đồng dư với nhau theo modulo m Nếu trong đó a là số nguyên dương nhỏ hơn m,

thì a được gọi là phần dư của b khi chia cho m, đôi khi a được gọi là thặng dư của b

theo modulo m

Tập hợp các sô ́nguyên từ 0 đến m − 1 được gọi là tập hợp thặng dư hoàn

toàn modulo m Điều này có nghĩa là, với mỗi số nguyên a, thặng dư modulo m là

một số từ 0 đến m − 1

Modulo số học cũng như số học bình thường, bao gồm các phép giao hoán,

kết hợp và phân phối Mặt khác, giảm mỗi giá trị trung gian trong suốt quá trình

tính toán

(a + b) mod m = ((a mod m) + (b mod m)) mod m

(a - b) mod m = ((a mod m) − (b mod m)) mod m

(a  b) mod m = ((a mod m)  (b mod m)) mod m

(a  (b +c)) mod m = ((a  b) + (a  c)) mod m

Ví dụ 1.1: 10  7 (mod 3) vì 10 = 3.3 + 1 và 7 = 2.3 + 1

Trang 9

b Quan hệ đồng dư

Quan hệ đồng dư theo modulo m trên Z là một quan hệ tương đương có nghĩa là:

ii)  a, b  Z, a  b (mod m) ⇒ b  a (mod m) (Tính đối xứng)

iii)  a, b, c  Z, a  b, b  c ⇒ a  c (mod m) (Tính bắc cầu)

c Các phép toán trên modulo:

Nếu ta có: a1  a2 (mod n)

b1  b2 (mod n) Thì ta có:

Phương trình trên tương đương với tìm x và k sao cho:

4x = 7k + 1 với điều kiện cả x và k đều là số nguyên

Vấn đề chung đặt ra tại đây là tìm x sao cho:

Trong trường hợp chung a-1  x (mod n) chỉ duy nhất một lời giải nếu a và n là

một cặp số nguyên tố cùng nhau Nếu a và n không phải là một cặp số nguyên tố

Trang 10

cùng nhau, thì a-1  x (mod n) không có lời giải nào Thuật toán Euclid có thể mở

rộng tính ra được số nghịch đảo của số modulo n, đôi khi thuật toán này còn gọi là thuật toán Euclid mở rộng

static void update (int *un, int *vn, int q)

Trang 11

Ví dụ 1.3: Tìm nghịch đảo theo Euclide mở rộng

Tìm số nghịch đảo (nếu có) của 30 theo môđun 101

Định lí 1: Nếu m là số nguyên tố và a không phải là bội số của m thì định lý Fermat

phát biểu như sau: am – 1  1 (mod m) (xem [1, 2])

Ví dụ 1.4:

27-1 mod 7 = 1 (= 26 mod 7 = 64 mod 7 = 1)

35-1 mod 5 = 1 (= 34 mod 5 = 81 mod 5 = 1)

1.1.1.3 Định lí Euler

Định lí 2: Hàm Euler Cho n là một số nguyên dương Khi thực hiện phép

tính đồng dư n của mọi số nguyên khác ta nhận được tập đầy đủ các phần dư có thể

có là: 0, 1, 2,…, n – 1

Từ tập trên ta tìm tập rút gọn bao gồm các số nguyên tố cùng nhau với n và quan tâm đến số lượng các phần tử như vậy đối với số nguyên dương n cho trước

Trang 12

Ví dụ 1.5: Với n = 10:

Tập đầy đủ các phần dư là {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

Tập rút gọn các phần dư nguyên tố với 10 là {1, 3, 7, 9}

Số các phần tử của tập rút gọn trên là giá trị của hàm Euler Ф(n) Như vậy, Ф(10) = 4

Muốn tính Ф(n) việc đếm số các số nguyên tố cùng nhau với n và nhỏ hơn n

được loại bỏ vì đây là bài toán tốn nhiều công sức Nói chung có thể tính hàm Euler

của một số dựa trên biểu thức phân tích ra thừa số của số đó

 Dễ dàng thấy, nếu p là số nguyên tố, thì Ф(p) = p − 1

 Nếu p và q là hai số nguyên tố khác nhau, thì có thể chứng minh được rằng:

Định lý Euler là tổng quát hoá của Định lý Ferma, khẳng định như sau:

a(n) mod n= 1với mọi cặp số nguyên dương nguyên tố cùng nhau a và n: gcd(a,n) =1

Ta có thể tính trực tiếp 48 mod 15 = (42)4 mod 15 = 1

Như vậy, cho các số nguyên dương a, n, m bất kỳ, áp dụng tính chất của phép nhân

modulo và Định lý Euler ta luôn có:

am mod n = (a mod n)(m mod(n)) mod n

Trang 13

Chẳng hạn: 4518 mod 20 = (45 mod 20)18 mod (20) mod 20 = 52 mod 20 = 1

1.1.1.4 Định lí phần dư Trung Hoa

Nếu bạn biết cách tìm thừa số nguyên tố cuả một số n, thì bạn có thể đã sử dụng, một số điều gọi là phần dư trung hoa để giải quyết trong suốt hê ̣phương trình Bản dịch cơ bản của định lý này được khám phá bởi toán học Trung Hoa vào thế kỷ thứ nhất

Định lí 3: Giả sử, sự phân tích thừa số của n = p1 p2 … pt thì hệ phương trình: (x mod pi) = ai, với i = 1,2….t có duy nhất một nghiệm với x nhỏ hơn n Bởi vậy, với a, b tùy ý sao cho a < p và b < q (với p, q là số nguyên tố) thì tồn tại duy nhất a, x khi x nhỏ hơn p  q thì: x  a (mod p) và x  b(mod q) Để tìm ra x, đầu tiên cần sử dụng thuật toán Euclid để tìm u,

u  q  1 (mod p), khi đó cần tính toán:

x = (((a − b)xu) mod p).q + b

Dưới đây là đoạn mã định lý phần dư Trung hoa trong ngôn ngữ C

int chineseRemainder(size t r, int *m, int *u)

{

size t i;

int modulus; int n;

modulus = 1; for(i=00; i<r:++i)

modulus *=m[i]; n =0 for(i=0; i<r:++i)

{

n+=u[i]*modexp (modulus/m[i], totient(m[i]), m[i]); n%=modulus;

} return n;

}

Ví dụ 1.8: Cho hai số nguyên dương p, q nguyên tố cùng nhau Chứng minh rằng

tồn tại số nguyên k sao cho (pq−1)n.k + 1 là hợp số với mọi số nguyên dương n

Trang 14

Lời giải:

Xét hệ đồng dư: { k ≡ −1(modp)k ≡ 1(modp) 𝑑𝑜 gcd(𝑝, 𝑞) = 1

nên theo định lí phần dư Trung Hoa thì hệ này chắc chắn có nghiệm

1.1.2.1 Bài toán logarit trên trường số thực R

Định nghĩa 2: Cho hai số dương a, b với a 1 Số x thỏa mãn đẳng thức

b = ax được gọi là logarit cơ số a của b và được ký hiệu là x = logab Như vậy ta có:

- Bài toán thuận: b = ax (a, x  R)

- Bài toán ngược: x = logab (a, b > 0, a 1)

Một số tính chất của hàm logarit: Với a, b, c, d > 0, a 1,   R, ta có:

y = log1 = 0

y = loga = 1

y = log(a) = 

𝑦 = 𝑎log 𝑎 𝑏 = 𝑎

y = log(c.d) = logc + logd

y = log(c/d) = logc − logd

1.1.2.2 Bài toán logarit trên trường hữu hạn

Xét vành số Zp, với p là số nguyên tố, vậy ta có Zp= GF(p) Tất cả các phần

tử a  0 của trường tạo thành nhóm nhân: 𝑍𝑝∗ = {𝑎|1 ≤ 𝑎 ≤ 𝑛 − 1}

Nếu cấp của a bằng p thì ta nói a là căn nguyên thủy của Zp

Xét bài toán thuận: Cho y = ax

Ví dụ 1.9: Cho p = 19, a = 2 Ta tính y = ax mod 19 với x  Zp= GF(p), dễ dàng thấy

2 là căn nguyên thủy và các giá trị được cho bởi bảng sau:

Trang 15

Tính y = 2x mod 19, các cặp nghịch đảo Z19

x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

2 x 2 4 8 16 13 7 14 9 18 17 15 11 3 6 12 5 10 1

Nhận xét:

- Do a là phần tử nguyên thủy nên ax sẽ đi qua hết các phần tử trong vành Zp

- Từ phần tử nguyên thủy a = 2 đã cho ban đầu ta có thể tìm được các phần tử nguyên thủy khác theo công thức b = ai mod n với (i,(n)) = 1 Vậy tập các phần tử nguyên thủy của Z19 là: {2, 13, 14, 15, 3, 10}

- Các phần tử nguyên thủy tạo thành các cặp nghịch đảo:

y = loga bc = (loga b + loga c) mod (p − 1)

y = loga b/c = (loga b − loga c) mod (p − 1)

𝑦 = log𝑎−1𝑥 = −log𝑎𝑥 = 𝑝 − 1 − log𝑎𝑥

y = loga 1 = p − 1= 0

Ví dụ 1.10: Cho p = 19, a =2 Ta tính y = logax mod19 với x  Zp= GF(p) Từ bảng

đã tính ở trên ta có các giá trị ngược:

x 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

2x 2 4 8 16 13 7 14 9 18 17 15 11 3 6 12 5 10 1 Log2x 18 1 13 2 16 14 6 3 8 17 12 15 5 7 11 4 10 9

Trang 16

Do 218 = 1 vậy nên ta có log2 1 = 18; 21 = 2 vậy nên ta có log2 2 = 1, tương

tư ̣ta tính được các phần tử y = log2 x khác

1.1.2.3 Bài toán logarit rời rạc

Cho Zp, với p là số nguyên tố,  là phần tử nguyên thủy   *

Ví dụ 1.11: Giải bài toán với p = 19, ta có 6 điểm nguyên thủy (3 cặp nghịch đảo)

Tacó: 𝑦 = log𝑎−1𝑥 = −log𝑎𝑥 = 𝑝 − 1 − log𝑎𝑥

→ log𝑎−1𝑥 + log𝑎𝑥 = 𝑝 − 1

Xét cặp nguyên thủy (2, 10):

Ta có: log10 x = p −1 – log2 x với p = 19 ta lập được bảng:

Bảng 2.3 Tính các logarit rời rạc y = log 2 x mod 19 và y = log 10 x modulo 19

1.1.2.4 Bản chất của bài toán logarit rời rạc

Từ những ví dụ trên ta rút ra được những kết luận sau:

Logarit rời rạc là sư ̣tiếp nối của phép tính logarit trên trường số thực vào các nhóm hữu hạn Chúng ta đã biết với 2 số thực x, y và cơ số  > 0,   1, nếu ax thì

x được gọi là logarit cơ sô ́a của y, ký hiệu là: x = loga y Tuy nhiên trong logarit rời rạc, các số a, x, y đều là các phần tử của nhóm hữu hạn

Logarit rời rạc có ứng dụng trong hê ̣mã khóa công khai hê ̣mật mã Elgamal

Cho p là một số nguyên tố Xét nhóm nhân các số nguyên modulo p:

*

p

Z = {1, 2, 3,…, p-1} với phép nhân modulo p

Trang 17

Nếu ta tính lũy thừa bậc k của một số trong nhóm rồi rút gọn theo modulo p thì ta được một số trong nhóm đó Quá trình này gọi là lũy thừa rời rạc modulo p Chẳng hạn p = 17, lấy  = 3, k = 4, ta có: 34 = 81  13(mod17)

Logarit rời rạc là phép tính ngược lại: biết 3k  13(mod17), hãy tìm k Để giải chúng ta phải thông qua phép thử lần lượt tính lũy thừa rời rạc, chẳng hạn tính

32 mod 17 = 9, 33 mod 17 = 10, 34 mod 17 = 13 và tìm được k = 4 Như vậy bài toán logarit rời rạc là bài toán khó

1.2 Hệ mã khóa công khai

1.2.1 Mã khoá công khai RSA

RSA là mã công khai được sáng tạo bởi Rivest, Shamir & Adleman ở MIT (Trường Đại học Công nghệ Massachusetts) vào năm 1977 RSA là mã công khai được biết đến nhiều nhất và sử dụng rộng rãi nhất hiện nay Nó dựa trên các phép toán lũy thừa trong trường hữu hạn các số nguyên theo modulo nguyên tố Cụ thể,

mã hóa hay giải mã là các phép toán luỹ thừa theo modulo số rất lớn Việc thám mã, tức là tìm khóa riêng khi biết khóa công khai, dựa trên bài toán khó là phân tích một

số rất lớn đó ra thừa số nguyên tố Nếu không có thông tin gì, thì ta phải lần lượt kiểm tra tính chia hết của số đó cho tất cả các số nguyên tố nhỏ hơn căn của nó Đây là việc làm không khả thi

Người ta chứng minh được rằng, phép lũy thừa cần O((log n)3) phép toán, nên có thể coi lũy thừa là bài toán dễ Cần chú ý rằng ở đây ta sử dụng các số rất lớn khoảng 1024 bit, tức là cỡ 10350 Tính an toàn dựa vào độ khó của bài toán phân tích ra thừa số các số lớn Bài toán phân tích ra thừa số yêu cầu O(elogn log logn) phép toán, đây là bài toán khó

Mã công khai RSA gồm hai giai đoạn: khởi tạo khóa RSA và giai đoạn mã hóa/giải mã

1.2.2 Khởi tạo khóa RSA

Mỗi người sử dụng A tạo một cặp khóa công khai – riêng như sau: Chọn ngẫu nhiên hai số nguyên tố lớn p và q khác nhau

Tính số N làm modulo của hệ thống: N = p.q Ta đã biết Ф(N) = (p − 1)(q − 1)

Trang 18

Chọn ngẫu nhiên khóa mã e làm khóa công khai, sao cho 1 < e < Ф(N) và gcd (e,Ф(N)) = 1, tức là e và Ф(N) là hai số nguyên tố cùng nhau

Nghịch đảo của e theo modulo Ф(N) là khóa riêng d, vậy tìm d từ phương trình (e.d) mod Ф(N) = 1, với 0 < d < Ф(N) hay d = e-1mod Ф(N)

Chú ý: Vai trò của e và d có thể thay đổi cho nhau, tức là có thể lấy e làm khóa mật, khi đó tính d nghịch đảo của e làm khóa công khai

Người sử dụng A in khóa mã công khai: KU = {e, N} và thông báo cho mọi người biết Người sử dụng A giữ bí mật khóa riêng: KR = {d, p, q}

1.2.3 Sử dụng RSA

Để mã hóa mẩu tin M, người gửi B:

Lấy khóa công khai của người nhận A: KU = {e, N}

Mã hóa thông điệp M bằng khóa công khai của người nhận A:

C = Me mod N, trong đó 0 ≤ M < N

Để giải mã bản mã, người sử dụng A: Sử dụng khóa riêng KR = {d, p, q}

Giải mã thông điệp, tính M = Cd mod N

Lưu ý rằng bản tin M < N, do đó khi cần chia khối bản rõ thành các khối nhỏ

Vì dựa theo định lý Euler có thể chứng minh được rằng M Ф(N) mod N = 1

Nên Cd Mod N = M1.M k.Ф(N)mod N = M1 mod N.(MФ(N) mod N)k

= M.1 mod N = M

Ví dụ 1.12: Tạo khóa công khai cho người sử dụng A, sau đó người sử dụng B dùng

khóa công khai của A mã hóa thông điệp gửi cho A và cuối cùng A sử dụng khóa

Trang 19

riêng của mình để giải mã thông điệp

Tạo bộ khóa công khai cho người sử dụng A

7 In khóa công khai của người sử dụng A: KU = {7, 187}

8 Giữ khóa riêng bí mật riêng của A: KR = {23, 17, 11}

B sử dụng khóa công khai của A để mã hóa mã thông điệp gửi cho A:

Cho mẩu tin M = 88 (thỏa mã điều kiện 88 < 187) Mã C = 887 mod 187 = 11

Người sử dụng A dùng khóa riêng của mình để giải mã như sau:

M = 1123 mod 187 = 88 Có thể dùng định lý phần dư Trung Hoa để giải mã cho nhanh như sau:

Tính 1123 mod 11 = 0

Tính 1123 mod 17 = (-6)23mod 17 = (-6)16.(-6)4.(-6)2.(-6) mod 17 = 3

Vì (-6)2mod 17 = 2, nên (-6)4mod 17 = 4, (-6)8 mod 17 = -1;

(-6)16 mod 17 = 1; 11-1mod 17 = (-6)-1mod 17 = 14

nên C2

= 11.(11

-1

mod 17) = 11.(14 mod 17) = 154 Vậy M = (3.154) mod 187 = 462 mod 187 = 88

1.3 Mã Elgamal

1.3.1 Hệ mã hóa Elgamal

Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là khó giải, g là phần

tử sinh trong Zp* Chọn tập bản rõ A = Zp, chọn tập bản mã C = {(a, b) / a, b ∈ Zp} Chọn khóa bí mật là a ∈ Zp*, khóa công khai là h = ga Để mã hóa m, ta chọn số ngẫu nhiên bí mật k, bản mã là: (x, y) = Ek (m) = (gk, hk m) Tài liệu được giải mã là

m = y / xa

Trang 20

Ví dụ 1.13: Cho p = 2579, g = 2, a = 765 Khi đó h = 2765 mod 2579 = 949

Bây giờ ta giả sử Alice muốn gửi thông báo m = 1299 tới Bob

Giả sử số ngẫu nhiên k mà cô chọn là k = 853 Sau đó cô ta tính:

1.3.2 Khái niệm mã hóa đồng cấu

Cho tập bản rõ P tạo thành nhóm với phép tính ⊕, tập bản mã C tạo thành nhóm với phép tính ⊗ Ek(m) là hàm mã hoá bản rõ m theo tham số ngẫu nhiên bí mật k Hệ mã hóa E được gọi là có tính chất (⊕, ⊗) - đồng cấu, nếu với tham số

k = k1 + k2, thỏa mãn công thức đồng cấu: Ek1(m1) ⊗ Ek2(m2) = Ek(m1 ⊕ m2), trong

đó m1, m2 là 2 bản rõ, k1, k2 là 2 tham số ngẫu nhiên bí mật

1.4 Chữ ký điện tử DSA

Sinh khóa DSA Chia sẻ giá trị khóa công khai tổng thể (p, q, g):

Số nguyên tố lớn p = 2L, ở đó L = 512 đến 1024 bit và là bội của 64;

Chọn q là số nguyên tố 160 bit và là ước của p −1;

Để ký mẩu tin M người gửi trước hết cần: Sinh khóa chữ ký ngẫu nhiên k:

k < p, k phải là số ngẫu nhiên, được xóa sau khi dùng và không bao giờ dùng lại; Sau đó tính cặp chữ ký: r = (gk(mod p)) (mod q)

s = (k-1(SHA(M) + x.r) (mod q)

Gửi cặp chữ ký (r, s) cùng với bản tin M

Trang 22

- Bài toán Logarit trên trường số thực R

- Bài toán Logarit trên trường hữu hạn

- Bài toán Logarit rời rạc

- Bản chất của bài toán Logarit rời rạc

Trong mục các hệ mã khóa công khai tôi đã trình bày các hệ mã hóa sau:

- Mã RSA

- Mã hóa công khai RSA

- Khởi tạo khóa RSA

Trang 23

CHƯƠNG 2: MỘT SỐ GIAO THỨC AN NINH NÂNG CAO

Chương I của luận văn đã trình bày về một số kiến thức chuẩn bị như số học modulo, các hệ mã hóa công khai và chứ ký điện tử DSA Chương 2 này sẽ đi sâu vào một số giao thức an ninh nâng cao Phân tích lược đồ chia sẻ Shamir đồng thời

sử dụng cùng với hệ mã hóa Elgamal chọn phiếu bầu cho một số ứng viên Tiếp đó

em trình bày một số lược đồ cam kết, chứng minh không tiết lộ thông tin và giao thức kết hợp để bổ trợ và xây dựng nên phương pháp bầu cử dựn trên mã đồng cấu

ở chương sau

2.1 Lược đồ chia sẻ thông tin mật Shamir

Bài toán 1: Trong một ngân hàng có một két phải mở hằng ngày, ngân hàng sử

dụng 3 thủy quỹ lâu năm nhưng họ không tin bất kì người nào Bởi vậy họ cần thiết

kế một hệ thống sao cho bất kì 2 thủy quỹ nào cũng có thể mở được két, song riêng từng người một thì không thể mở được Vấn đề này có thể giải quyết được bằng lược đồ chia sẻ bí mật

a Khái niệm chia sẻ bí mật

Sơ đồ chia sẻ bí mật là một phương thức để chia sẻ bí mật ra thành nhiều phần, sau đó phân phối mỗi phần cho mỗi người trong tập hợp người tham gia Chỉ

có thể khôi phục lại bí mật bằng cách kết hợp dữ liệu từ một số tập con những người tham gia trong số họ Một tập con những người tham gia đó mà có thể chia sẻ để khôi phục thông tin mật, được gọi là tập con chỉ định

Một sơ đồ chia sẻ bí mật được coi 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ẽ không tìm được thông tin bí mật

b Định nghĩa 3

Cho t, w là các số nguyên dương, t ≤ w Một sơ đồ ngưỡng A(t, w) là một phương pháp phân chia khóa K cho một tập w thành viên (ký hiệu là P) sao cho t thành viên bất kì có thể tính được K, nhưng không một nhóm (t − 1) thành viên nào

có thể làm được điều đó

Trang 24

Giá trị K được chọn bởi một thành viên đặc biệt được gọi là người phân phối

D, và D thuộc P

D phân chia khóa K cho mỗi thành viên trong P bằng cách cho mối thành viên một thông tin cục bộ được gọi là một mảnh Các mảnh được phân phối một cách bí mật để không thành viên nào biết được mảnh được trao cho các thành viên khác Một tập con B các thành viên (B là tập con của P) sẽ kết hợp các mảnh của họ

để tính khóa K

Nếu |B| > t − 1, thì họ có khả năng tính được K

Nếu |B| ≤ t − 1, thì họ không thể tính được K

Lược đồ Shamir này ra đời năm 1979

2.1.1 Phân phối mảnh cho các thành viên

1 Giai đoạn khởi tạo D chọn w phần tử khác nhau và khác không trong Zp

và ký hiệu chúng là x i với 1 ≤ i ≤ w Các giá trị x i được coi là khoá công khai của

các thành viên p i

2 Giả sử D muốn phân chia khóa K ∈ Zp D sẽ chọn 1 cách bí mật (ngẫu nhiên và độc lập) t phần tử của Zp: a 1 ,…, a t-1

3 D phân phối các mảnh cho các thành viên: với 1 ≤ i ≤ w, D tính mảnh y i

là giá trị của đa thức a tại diểm thứ x i , cụ thể y i = a(x i ), trongđó:

D trao giá trị công khai xi cho Pi

2 D chọn ngưỡng chia sẻ bí mật là t = 3 phần tử trong Zp: a1 = 12, a2 = 3, a3 = 5

3 D tính yi = P(xi), 1 ≤ i ≤ 6

Trang 25

2.1.2 Khôi phục khoá K từ t thành viên

Khôi phục theo công thức nội suy Lagrange

Trong phần này chúng ta sẽ khôi lại thông tin mật bằng phương pháp sử dụng công thức nội suy Lagrange Công thức nội suy Lagrange có dạng

Một nhóm B gồm t thành viên có thể tính được a(x) bằng cách dùng công thức nội suy Có thể tính được hằng số K = a(0):

Thay x = 0 vào công thức nội suy Lagrange:

K = ∑ yjt

j=1

∏ −xit

xik− xit1≤k≤t,k≠j

Trang 26

Giả sử ta định nghĩa:

bj= ∏ −xit

xik− xit1≤k≤t,k≠j

Khi đó:

K = ∑ yj bjt

j=1

∏ −xit

xik− xit1≤k≤t,k≠j

với

bj= ∏ −xit

xik− xit1≤k≤t,k≠j

Áp dụng công thức trên ta tính được: b1 = 3, b2 = -3, b3 = 1

𝐾 = ∑ 𝑦𝑗 𝑏𝑗𝑡

𝑗=1

K = 3.21 + (-3).5 +1.3 mod 43 = 8

 Ưu nhược điểm của sơ đồ ngưỡng Shamir

 An toàn: Phải có ít nhất k mảnh bí mật ghép lại để khôi phục bí mật ban đầu, có nghĩa là “kẻ xấu” không thể lợi dụng được trừ khi anh ta thoả hiệp được với

Ngày đăng: 05/09/2016, 15:22

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Dương Anh Đức (2008), Mã hóa và ứng dụng, NXB Đại Học Quốc Gia TP HCM Sách, tạp chí
Tiêu đề: Mã hóa và ứng dụng
Tác giả: Dương Anh Đức
Nhà XB: NXB Đại Học Quốc Gia TP HCM
Năm: 2008
[3] Hà Huy Khoái (2003), Số học thuật toán, NXB Đại Học Quốc Gia Hà Nội Sách, tạp chí
Tiêu đề: Số học thuật toán
Tác giả: Hà Huy Khoái
Nhà XB: NXB Đại Học Quốc Gia Hà Nội
Năm: 2003
[4] Trịnh Nhật Tiến (2000), Giáo trình an toàn dữ liệu, Đại Học Công Nghệ, Đại học quốc gia Hà Nội Sách, tạp chí
Tiêu đề: Giáo trình an toàn dữ liệu
Tác giả: Trịnh Nhật Tiến
Năm: 2000
[5] Trịnh Nhật Tiến, Trương Thị Thu Hiền (2005), “Về một quy trình bỏ phiếu từ xa”, Tạp chí khoa học ĐHQGHN, KHTN&amp;CN (số 2PT).Tài liệu Tiếng Anh Sách, tạp chí
Tiêu đề: Về một quy trình bỏ phiếu từ xa”, "Tạp chí khoa học ĐHQGHN, KHTN&CN
Tác giả: Trịnh Nhật Tiến, Trương Thị Thu Hiền
Năm: 2005
[1] Phan Đình Diệu (2002), Lý thuyết mật mã và An toàn thông tin Khác
[6] Craig Stuntz (2010-03-18), What is Homomorphic Encryption, and Why Should I Care Khác
[7] Cyber Voter, Report on Review of Cryptographic Protocols and Security Techniques for Electronic Voting, 2002 Khác
[8] Kyle MacNamara, Ievgeniia Iedemska (2012), A Survey of Electronic Voting Schemes Khác
[9] Ivan Damgard, Jens Groth and Gorm Salomonsen (2003), The theory and implenmentation of an Electronic Voting System Khác
[10] Josh Cohen Benaloh (1987) , Secret Sharing Homomorphisms Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w