Tải bản đầy đủ (.pdf) (16 trang)

Bài tập cuối khóa học phần mật mã học đề tài tìm hiểu về hệ mã hóa elgamal

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.23 MB, 16 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP.HỒ CHÍ MINH
KHOA CƠNG NGHỆ THƠNG TIN
-----o0o----

BÀI TẬP CUỐI KHĨA HỌC PHẦN
MẬT MÃ HỌC
ĐỀ TÀI: TÌM HIỂU VỀ HỆ MÃ HĨA ELGAMAL
Giảng viên hướng dẫn: VŨ ĐỨC THỊNH
Sinh viên thực hiện:
Ngô Văn Thiều – 2033190166 (Nhóm trưởng)
Nguyễn Cơng Dũng - 2033172024
Nguyễn Ngọc Bảo Trân – 2033190131
Nguyễn Văn Vàng - 2033183002

Thành phố Hồ Chí Minh, 26 tháng 12 năm 2022


MỤC LỤC


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

LỜI CẢM ƠN
Đầu tiên, chúng em xin gửi lời cảm ơn chân thành đến Trường Đại học Công nghiệp Thực phẩm
và Khoa Công Nghệ Thông Tin đã đưa môn học “Mật Mã Học” vào chương trình giảng dạy.
Đặc biệt chúng em xin gửi lời cảm ơn sâu sắc đến thầy Vũ Đức Thịnh đã truyền đạt những kiến
thức quý báu cho chúng em, đã trực tiếp hướng dẫn và tận tình giúp đỡ chúng em trong suốt thời
gian học mơn “Mật Mã Học”.
Mặc dù đã cố gắng trong quá trình tìm hiểu nhưng khơng thể tránh khỏi những sai sót. Chúng em
mong nhận được sự góp ý, nhận xét của q thầy cơ về nội dung cũng như hình thức trình bày để


bài báo cáo được hồn thiện.
Lời cuối cùng, chúng em xin kính chúc q thầy cơ và các bạn sức khỏe, luôn thành công trong
công việc và cuộc sống.
Chúng em xin chân thành cảm ơn !

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

NHẬN XÉT CỦA GIẢNG VIÊN
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................

Ý kiến của Giáo Viên
(Ký và ghi rõ họ tên)

VŨ ĐỨC THỊNH

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66


LỜI MỞ ĐẦU
Trong mọi thời đại xã hội loài người, vấn đề bảo mật thông tin luôn được quan tâm lớn. Từ xa xưa,
con người đã sáng tạo ra các hệ mật mã cổ điển để đáp ứng nhu cầu bảo mật thơng tin. Mật mã học là
một ngành có lịch sử từ hàng nghìn năm nay. Trong phần lớn thời gian phát triển của mình (ngoại trừ
vài thập kỷ trở lại đây), lịch sử mật mã học chính là lịch sử của những phương pháp mật mã học cổ
điển - các phương pháp mật mã hóa với bút và giấy, đơi khi có hỗ trợ từ những dụng cụ cơ khí đơn
giản.
Vào đầu thế kỷ 20, sự xuất hiện của các cơ cấu cơ khí và điện cơ, chẳng hạn như máy Enigma, đã
cung cấp những cơ chế phức tạp và hiệu quả hơn cho việc mật mã hóa. Sự ra đời và phát triển mạnh
mẽ của ngành điện tử và máy tính trong những thập kỷ gần đây đã tạo điều kiện để mật mã học phát
triển nhảy vọt lên một tầm cao mới. Rất nhiều hệ mật mã hiện đại đã lần lượt ra đời dựa trên cơ sở đại
số Modulo và các thuật toán logarithm rời rạc… Năm 1975, IBM công bố Hệ mật DES, khởi đầu cho
các hệ mật mã hiện đại. Tiếp theo đó là sự ra đời của các hệ mật mã AES, RSA, DSA, Elgamal… Hệ
mật Elgamal được đề xuất vào năm 1984 trên cơ sở của bài toàn Logarit rời rạc, là một hệ mật mã rất
khó thám mã.
Dựa trên sự hướng dẫn của thầy, các thành viên trong nhóm đã tiến hành tìm hiểu về các thuật tốn
thám mã và giải mã hệ mật mã hóa Elgamal, nhóm tiến hành xây dựng mô phỏng hệ mật Elgamal trên
phần mềm Matlab. Báo cáo cũng như phần mơ phỏng của nhóm sẽ khơng tránh khỏi những thiếu sót,
rất mong được sự góp ý chỉ dẫn của thầy!

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

I.

LÝ THUYẾT


1. Tổng quan về Elgamal
Hệ mật ElGamal là một hệ mật khóa bất đối xứng cho khóa cơng khai, dựa trên trao đổi
khóa Diffie – Hellan. Thuật tốn do Taher ElGamal tạo ra vào năm 1985 lấy mơ hình bài
tốn logarit rời rạc.
Thuật tốn ElGamal có hai khóa: Public key (khóa cơng khai) và Private key (khóa bí
mật). Public key sẽ được cơng bố và mọi người đều có thể mã hóa bản tin Nhưng chỉ có
Pravate key mới cả thể giải mã.
 Ưu điểm:
o Do được xây dựng từ bài toán logarit rời rạc, độ phức tạp của bài tốn
logarithm lớn nên có độ an tồn cao.
o Bản mã phụ thuộc vào bản rõ và giá trị ngẫu nhiên nên từ một bản rõ ta có
thể có nhiều bản mã khác nhau.
 Nhược điểm:
o Tốc độ chậm (do phải xử lý số nguyên lớn).
o Dung lượng bộ nhớ dành để lưu trữ các bản mã lớn gấp đôi so với các hệ mã
khác.
o Do việc sử dụng các số nguyên tố nên việc sinh khóa và quản lý khóa cũng
khó khăn hơn các hệ mã khối.

1.1 Tính bảo mật của hệ mật mã ElGamal

Hệ mật ElGamal sẽ bị phá vỡ nếu khóa bí mật � hoặc � có thể tính được trong bài tốn
logarit rời rạc. Tính an tồn của nó tùy thuộc vào độ phức tạp của bài toán logarith.
Trong bài toán về hệ Elgamal:
+ p là số nguyên tố, a là phần tử nguyên thủy của Z*p. (p và a là cố định).
+ Bài toán logarith rời rạc có thể được phát biểu như sau: Tìm 1 số mũ x duy nhất,
0<=x<=p-2 sao cho ax=y mod p, với y thuộc Z*p cho trước.
- Bài tốn có thể giải được bởi phương pháp vét cạn (tức là duyệt tất cả phần tử x) để tìm
x thỏa mãn.
Bài tốn có độ phức tạp là: O(p)(bỏ qua thừa số logarith). Vấn đề đặt ra là nếu p lớn hoặc

rất lớn thì để thực hiên phương pháp này cần thời gian rất lớn => Không khả thi.

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

Recommandé pour toi

84

Suite du document ci-dessous

Tariffabcabca shf
Kinh te doi ngoai

10

B Sunda - isi banyak
Mass Transfer

7

Aucun

Chapter 9 - LITERATURE
Business Administration

2


Aucun

Aucun

Unit 1 Reading 2 - tai lieu - Por Que Mentimos?: Las Raices
del Engano y el Inconsciente = Why We Lie?
nhập môn công nghệ thông tin

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99

Aucun


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

Tuy nhiên bài tốn logarit rời rạc chưa có phương pháp tính hiệu quả nên độ an tồn
của hệ mật là rất lớn.
Với một số � đủ lớn thì thuật tốn ElGamal khơng có phương pháp thám mã hiệu quả.
So sánh ưu, nhược điểm của hệ mã ElGamal với một số hệ mã khác
Ưu điểm

Nhược điểm

ElGamal
Thao tác nhanh hơn, tiết kiệm
được thời gian nhưng vẫn có tính
bảo mật cao
(Thiết lập các thuật toán gửi và
xác thực đơn giản hơn: Tạo giá trị
công khai chung, chọn 1 số

nguyên tố Q bất kì và A là căn
nguyên thủy của q (A < Q). Sau
đó qua các q trình mã hóa và
giải mã chỉ cần xác nhận Khóa
của 2 bên cho ra kết quả bằng
nhau thì xác nhận là hợp lệ).

DSS
Thao tác chậm hơn
(Phải thiết lập các thuật toán gửi
và xác thực nâng cao hơn: Tạo giá
trị L sao cho 512 < L< 1024 và L
là bội số của 64, sau đó qua các
q trình mã hóa và tới người
nhận, phải sử dụng thêm mã băm
sử dụng SHA-1 để xác nhận).

Dung lượng bộ nhớ dành để lưu Có thể lưu trữ một số chữ ký để
trữ các bản mã lớn gấp đôi so với
tái sử dụng nếu có nhu cầu trao
hệ mã khác.
Do hệ mã thường sử dụng cho đổi dữ liệu thường xuyên.
việc ký số 1 lần

Ưu điểm

Nhược điểm

ElGamal
Mỗi người sẽ có một khóa

riêng khác nhau nên đảm bảo
được tính riêng tư của thông
tin.

RSA
Sử dụng chung module n nhỏ
(Trong sơ đồ RSA thì cơng thức để
tính giá trị chữ ký y trên bản rõ x
như sau: y = xa (mod n). Thì kẻ tấn
cơng có thể tính được khóa bí mật
bằng cơng thức: a = logxy (mod n)

Tốc độ chậm hơn do bài tồn
logarit phức tạp.

Tốc độ nhanh hơn do bài tốn
logarit đơn giản hơn.

2. Cách thức hoạt động của ElGamal

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

Thiết kế sơ đồ khối
Bản rõ m

TẠO
KHÓA


LẬP MÃ

Bản mã c

GIẢI MÃ

Bản rõ m

Hình 1. Sơ đồ khối

Mơ tả:
Cách làm việc của giải thuật này khi áp dụng thuật toán là khi mã hóa một bản tin bất
kì, Alice tạo ra một số ngẫu nhiên kết hợp với bản rõ để tạo ra bản mã. Sau đó Alice
truyền bản mã cho Bob, để giải mã Bob cần có khóa bí mật để giải mã bản tin.
Giả sử Bob nhận được bản tin được mã hóa như hình:

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

Hình 2. Mơ hình hệ mật Elgamal

2.1

Tạo khóa

Để Alice và Bob có thể trao đổi thơng tin với nhau bằng thuật tốn mã ElGamal thì cần
phải tạo khóa trước tiên:

 Chọn số nguyên tố � đủ lớn sao cho bài tốn logarit trong �� là khó giải.
Chọn một số � thuộc nhóm � =
 sao cho 1 ≤ � ≤ � − 2
Chọn �1 là phần tủ nguyên tử của nhóm � =


Tính �2 =

 Khóa cơng khai sẽ là (�1, �2, �) Khóa bị mật sẽ là �.

2.2 Mã hóa
Giả sử Alice gửi một bản tin M cho Bob, khi đó Alice sẽ thực hiện các bước:
1. Chọn một số nguyên ngẫu nhiên k nằm trong nhóm >
Khi đó tính được bản mật � 1 =
2. Sử dụng khóa cơng khai để tính bản mật �2 =
3. Alice sẽ có bản mã gồm (�1, �2) để gửi đến cho Bob.

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

2.3 Giải mã
Bob nhận được bản mã (�1, �2) và có khóa bí mật khi đó Bob sẽ tìm được bản rõ theo
cơng thức:

Ví dụ:
Cho hệ Elgamal có p = 2579; = 2; a = 765; chọn k ngẫu nhiên là 853. Bản rõ M = 1299.
Tìm khóa của hệ mã trên?
Giải:

Mã hóa:
Trước hết ta tính: =
= 2765 mod 2579 = 949
Để mã hóa thơng điệp M = 1299 ta tính theo k = 853:
C1 = mod p = 2853 mod 2579 = 435
C2 = (Mk) mod p = (1299949853) mod 2579 = 2396
Vậy bản mã gửi đi sẽ là C = (435, 2396).
Giải mã:
Với khóa bí mật a = 765;
(C1a)-1) mod p = C1(p-1-a)) mod p
= (435(2579 - 1 - 765)) mod 2579
= (4351813) mod 2579 = 1980
M = (C2 (C1a)-1) mod p = (23961980) mod 2579 = 1299
Kết luận:
Xây dựng được hệ mã Elgamal bộ khóa:
K = (p, , a,) = (2579, 2, 765, 949) với:
- Thành phần khóa cơng khai:
Ku = (,, p) = (2, 949, 2579)
- Thành phần khóa bí mật:
Kr = (a, p) = (765, 2579)

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

- Mã hóa M = 1299 với E(C1 , C2) = (435, 2396)
2.4 Thám mã hệ Elganal
Để thám mã hệ Hệ Elgamal, ta cần phải giải bài toán logarit rời rạc. Chúng ta có 2 thuật
tốn để giải bài tốn logarit rời rạc là:

1.

Thuật toán Shank

2.

Thuật toán Pohlig Hellman

*Thuật toán Shank
Thuật tốn này có tên gọi khác là thuật tốn thời gian bộ nhớ. Tư tưởng của thuật toán là
nếu ta có đủ bộ nhớ thì có thể sử dụng bộ nhớ đó để giảm thời gian thực hiện của thuật
toán. Input: Số nguyên tố p, phần tử nguyên thủy a của Z*p, số nguyên y.
 Output: Cần tìm a sao cho = a mod p
Thuật toán:



Gọi m = [p-1)/2] (lấy phần nguyên).
+ Bước 1: Tính

mj

mod p với 0<=j<=m-1.

+ Bước 2: Sắp xếp các cặp (j,
-i

+ Bước 3: Tính

m


mod p) theo

mj

mod p và lưu vào danh sách L1.

mod p với 0k=<=m-1.

+ Bước 4: Sắp xếp các cặp (i, * -i mod p) theo

-i

mod p và lưu vào danh sách L2.

+Bước 5: Tìm trong hai danh sách L1 và L2 xem có tồn tại cặp (j, mj mod p) và (i,

-i

mod

p) nào mà -i mod p = -i mod p (tọa độ thứ hai của hai cặp bằng nhau).
Lưu ý: Vì

mj

=

-i


=> = nên bước 5 ln thành cơng.

+ Bước 6: Tính a= log =(mj +i) mod (p - 1). Kết quả này có thể kiểm chứng từ cơng
thức:
mj

=>

mj+i

mod p=

-i

mod p

mod p= mod p

=> log = (mj +i) mod (p-1)= a.
*Bài toán logarith rời rạc:
Logarith rời rạc là sự kết nối của phép tính logarith trên trường số thực vào các nhóm hữu
hạn. Ta nhắc lại rằng với hai số thực x, y và cơ số a>0, a0, nếu ax -y=0 thì x được gọi là
logarith cơ sổ của y, ký hiệu x = .
Logarith rời rạc là bài tốn khó (chưa biết thuật toán hiệu quả nào). Trong khi bài toán
ngược lũy thừa rời rạc lại khơng khó (có thể sử dụng thuật tốn bình phương và nhân).

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66


Ví dụ:
Cho p là một số ngun tố, xét nhóm nhân các số nguyên modulo p:
Zp*= {1,2,...,p} với phép nhân modulo p.
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 đó. Qúa trình này được gọi là lũy thừa rời rặc modulo p, chẳng hạn
với p = 17, lấy a = 3, k = 4 ta có:
34 = 81 = 13 mod 17
Logarith rời rạc là phép tính ngược lại:
Biết: 3k = 13 (mod 17) hãy tìm k?
Thực hiện tương tự như thuật tốn Shank => k=4. Tuy nhiên đây là một bài toán tương
đối khó. Trong trường hợp p lớn (có ít nhất 150 chữ số) thì bài tốn trở thành bất khả thi
=> an toàn

3.

Ứng dụng chữ ký số

3.1 Chữ ký số
Chữ ký số là một dạng của chữ ký điện tử. Nó là một dạng dữ liệu dùng để chứng thực
cho các dữ liệu khác.
Chữ ký số sử dụng một hệ mã hóa bất đối xứng. Trong phần lớn các trường hợp, nó cịn
có thể kiểm tra cả tính tồn vẹn của dữ liệu nữa. Chữ ký số tương tự như chữ ký tay trên
nhiều phương diện, nhưng việc cài đặt và sử dụng chữ ký số khó khăn hơn rất nhiều.

3.2 Chữ ký số sử dụng hệ mật mã Elgamal
Việc ký tên và xác thực chữ ký số sử dụng hệ mã hóa Elgamal tương tự như q trình mã
hóa mà giải mã. Tuy nhiên vai trò của public key và private key thì có thay đổi đơi chút.
Để tạo chữ ký, người gửi sẽ dùng private key và người nhận sẽ dùng public key để xác
thực chữ ký đó.

Tuy nhiên, vì bản tin rất dài nên việc mã hóa tồn bộ bản tin sẽ rất mất thời gian. Vì vậy,
trong thực hành, chữ ký số thường sử dụng phương pháp mã hóa giá trị hash của bản tin.
Việc này mang lại rất nhiều lợi ích như:
Các hàm hash là hàm 1 chiều, vì vậy dù có được hash cũng khơng thể biết được bản tin

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

gốc như thế nào.
Độ dài hash là cố định và thường rất nhỏ, vì vậy chữ số sẽ khơng chiếm q nhiều dung
lượng.
Giá trị hash cịn có thể dùng để kiểm tra lại bản tin nhận được có nguyên vẹn hay không?
Chữ ký số đem lại nhiều giá trị hơn chữ ký tay rất nhiều. Có lẽ cũng vì vậy, việc xử lý
chữ ký số phức tạp hơn hẳn chữ ký tay truyền thống.

3.3


Ưu điểm
Khả năng nhận thức:
Các hệ thống mật mã khóa cơng khai cho phép mật mã hóa văn bản với khóa bí
mật mà chỉ có người chủ của khóa biết. Để sử dụng chữ ký số thì văn bản khơng
cần phải được mã hóa mà chỉ cần mã hóa hàm băm của văn bản đó. Khi cần kiểm
tra, bên nhận giải mã để lấy lại hàm băm và kiểm tra với hàm băm của văn bản nhận
được. Nếu hai giá trị này khớp nhau thì bên nhận có thể tin tưởng rằng văn bản xuất
phát từ người sở hữu khóa bí mật. Tất nhiên là chúng ta không thể đảm bảo 100% là
văn bản không bị giả mạo vì hệ thống vẫn có thể bị phá vỡ




Tính tồn vẹn:
Cả hai bên tham gia vào q trình thơng tin đều có thể tin tưởng là văn bản khơng
bị sửa lỗi trong khi truyền vì nếu văn bản bị thay đổi thì hàm băm cũng thay đổi và
lập tức bị phát hiện. Q trình mã hóa sẽ ẩn nội dung của gói tin đối với bên thứ ba
nhưng khơng ngăn cản được việc thay đổi nội dung của nó.



Tính khơng thể phủ nhận:
Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó do mình gửi. Để
ngăn ngừa khả năng này, bên nhận có thể yêu cầu bên gửi phải gửi kèm chữ ký số
và văn bản. Khi có tranh chấp, bên nhận sẽ dùng chữ ký này như một chứng cứ để
bên thứ ba giải quyết. Tuy nhiên, khóa bí mật vẫn có thể bị lộ và tính khơng thể phủ
nhận cũng khơng thể đạt được hoàn toàn.

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

3.4 Ý nghĩa
 Được sử dụng rộng rãi trong thương mại điện tử để thực hiện các giao dịch điện tử
nhằm xác định rõ người kí văn bản
 Chống chối bỏ khi người ký đã ký vào văn bản thì họ khơng thể phủ nhận là chữ
ký đó khơng phải của họ.
 Xác thực nội dung của văn bản ký: nhằm kiểm tra tính tồn vẹn của văn bản xem
nó có bị thay đổi thơng tin trong q trình vận chuyển.
 Độ an toàn của chữ ký số rất là cao, hiện nay được sử dụng rất phổ biến trong giao

dịch điện tử.
 Để đảm bảo an toàn, và tăng hiệu quả của chữ ký số cần có các tổ chức chứng
thực điện tử nhằm cung cấp và đảm bảo độ tin cậy cho chữ ký số. Đó là các tổ
chức cơng an

II. CODE VÀ DEMO CHƯƠNG TRÌNH

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99


37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.2237.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.66

37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.99



×