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

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

51 199 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

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

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

Nội dung

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è,

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

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 tuợng và phạm vi nghiên c ứ u 2

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

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

NỘI D U N G 3

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

1.1 Số học m o d u lo 3

1.1.1 Các phép toán trên m o d u lo 3

1.1.1.1 Số nghịch đảo M od u lo 4

1.1.1.2 Định lý F e rm a t 6

1.1.1.3 Định lí E uler 6

1.1.1.4 Định lí phần du Trung H o a 8

1.1.2 Logarit rời r ạ c 9

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

1.1.2.2 Bài toán logarit trên truờ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 k hai 12

1.2.1 M ã khoá công khai R S A 12

1.2.2 Khởi tạo khóa R S A 12

1.2.3 Sử dụng R S A 13

1.2.4 Cơ sở của R SA 13

1.3 Mã E lg am al 14

1.3.1 Hệ mã hóa E lgam al 14

Trang 5

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

1.4 Chữ ký điện tử D S A 15

1.4.1 Tạo chữ ký D S A 15

1.4.2 Kiểm chứng chữ ký D SA 16

CHƯƠNG 2: MỘT SỔ GIAO THỨC AN NINH NÂNG C A O 18

2.1 Lược đồ chia sẻ thông tin m ật S h am ir 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 E lg am al 22

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

2.2 Cam k ế t 28

2.3 Chứng minh không tiết lộ thông t i n 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ÊN MÃ ĐỒ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 p h iế u 34

3.2.4 Kiểm tra tính nhất q u á 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 L U Ậ N 46

DANH MỤC TÀI LIỆU THAM K H Ả 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 “N G H IÊ N c ử u H Ệ THỐNG B Â U c ử Đ IỆ N TỬ D ự A TRÊN

M Ã ĐÒ N G 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

- ứ n g 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 vỉ 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 vỉ 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 ưong 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

M odulo 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 toong 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 X b) mod m = ((a mod m) X (b mod m)) mod m

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

Ví du 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) V a, b Ễ z, a s b (mod m) => b = a (mod m) (Tính đối xứng)

iii) V a , b, c e 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ó: ai = ã2 (mod n)

bi = b ỉ (mod n)

Thì ta có:

• (ai + bi) = (a2 + b2) (mod n)

• (ai - bi) = (a2 - b2) (mod n)

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 ã 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ì ã 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, ỉnt *vn, int q)

Trang 11

Ví du 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

Đinh lí 1: Neu 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í du 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)

Đinh 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í du 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 O(n) Như vậy, 0 (1 0 ) = 4

M uốn tính O(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ì O(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:

a ° (n) mod n= lv ớ 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 4s 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)(mmod,I,(n)) mod n

Trang 13

Chẳng hạn: 4 5 18 mod 20 = (45 mod 20)18mod<1,(20) mod 20 = 52 mod 20 = 1.

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 = pix P2X .X Pt thì hệ phương

trình: (x mod Pi) = ai, với i = l,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 X q thì: X = a (mod p) và X = b(mod q) Đe tìm ra X, đầu tiên cần sử dụng thuật toán Euclid để tìm u,

u x q = 1 (m od 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)

{

n+ = u[i]*modexp ịmodulus/m[ỉ], totỉent(m[ỉ]), m[i']); n% -m odulus;

} return n;

}

Vi du 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 ( p q - l ) n.k + 1 là hợp số với mọi số nguyên dương n

Trang 14

Lời giải:

1 ( k = l( m o d p )Xét hệ đồng dư: Ị - I ( m o d p ) do gcd('P ' = 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 nshĩ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 G 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 > o, a 5É 1, a G R, ta có:

y = logal = 0

y = logaa = 1

y = loga(aa) = a

y = a l°z«b = a

y = loga(c.d) = loga|c| + loga|d|

y = loga(c/d) = loga|c| - loga|d|

1.1.2.2 Bài toán logarỉt 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: Zp = { a |l < a < n — 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í du 1.9: Cho p = 19, a = 2 Ta tính y = ax mod 19 với X e 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 Zi9

- Do a là phần tử nguyên thủy nên ax sẽ đi qua hết các phần tử ưong 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 = a‘ mod n với (i,(p(n)) = 1 Vậy tập các phàn tử nguyên thủy của Z i9 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:

2 = 10"1 (do2.10 m o d l9 = 1)

13 = 3"1 (do 3.13m odl9 = 1)

14 = 15"1 (d ol4.15m odl9 = 1)

Xét bài toán ngược: y = logaX với a, X e z*.

Dựa trên tính chất các hàm logarit ta có:

y = logabc = (logab + logac) mod (p - 1)

y = logab/c = (logab - logac) mod (p - 1)

Trang 16

Do 218 = 1 vậy nên ta có log2 1 = 18; 2 1 = 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 logarỉt rời rạc

Cho Zp, với p là số nguyên tố, a là phàn tử nguyên thủy a e Z * Hãy tìm:

Ta có: logiox = p -1 - log2X với p = 19 ta lập được bảng:

2* 2 4 8 16 13 7 14 9 18 17 15 11 3 6 1 2 5 1 0 1

L o g2X 18 1 13 2 1 6 14 6 3 8 17 1 2 15 5 7 11 4 10 9

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

1.1.2.4 Bản chất của bài toán logarỉt 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ố a > 0, a ^ 1, nếu ax thì

X được gọi là logarit cơ sô a của y, ký hiệu là: X = logay 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:

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 đuợ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 a = 3, k = 4, ta có: 34= 81 = 13(m odl7).

Logarit rời rạc là phép tính ngược lại: biết 3k = 13(m odl7), hãy tìm k Đe 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 ơ((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 0 ( e lognlog 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 0 (N ) = (p — l)(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 < 0 (N ) và gcd (e,<D(N)) = 1, tức là e và <D(N) là hai số nguyên tố cùng nhau.

Nghịch đảo của e theo modulo <D(N) là khóa riêng d, vậy tìm d từ phươngtrình (e.d) mod <D(N) = 1, với 0 < d < <D(N) hay d = e'^m od <D(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

Đe 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:

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

Nên cd Mod N = m I.M M ^ m o d N = M l mod N Í M ^ m o d N)k

= M l mod N = M

Ví du 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 = 88? 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 = l l 23 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 l l 23 mod 17 = (-6)23 mod 17 = (-6)ie.(-6)4.(-6)2.(-6) mod 17 = 3

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

(-6)16mod 17 = 1; l l " 1 mod 17 = (-6)"1 mod 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.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 e Zp} Chọn khóa bí mật là a G 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 / X a

Trang 20

Ví du 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 (© , <s>) - đồng cấu, nếu với tham số

k = ki + k2, thỏa mãn công thức đồng cấu: Eki(mi) 0 Ek2(m2) = Ek(mi © m2), trong

đó mi, m2 là 2 bản rõ, ki, 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;

Đe 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 ãR S A

- 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 IBI < 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ị với 1 < ỉ < w Các giá trị Xị được coi là khoá công khai của

các thành viên Pi.

2 Giả sử D muốn phân chia khóa K e Zp D sẽ chọn 1 cách b i m ật (ngẫu nhiên và độc lập) tp h ầ n tử của Zp: aj, , at.j

3 D phân p hổi các mảnh cho các thành viên: với 1 < ỉ <w , D tỉnh mảnh yi

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

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

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

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

i- 1

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:

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

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