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 1B ộ 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 2L Ờ 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 3LỜ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 4MỤ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 51.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 6MỞ ĐÀ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 7mô 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 8NÔ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 9b 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 10cù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 11Ví 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 12Ví 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 13Chẳ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 14Lờ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 15Tí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 16Do 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 17Nế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 18Chọ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 19riê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 20Ví 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 23CHƯƠ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 24Giá 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 252.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: