BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯƠNG MINH HỢI
XÂY DỰNG SƠ ĐỒ CHỮ KÝ SỐ
DỰA TRÊN HỆ MÃ KẾT HỢP ALT VÀ RSA
Chuyên ngành: CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN
TS. HỒ NGỌC VINH
Hà Nội - 2015
LỜI CAM ĐOAN
Luận văn thạc sĩ này do tôi nghiên cứu và thực hiện dưới sự hướng dẫn của
thầy giáo TS. Hồ Ngọc Vinh. Để hoàn thành bản luận văn này, ngoài các tài liệu
thảm khảo đã liệt kê, tôi cam đoan không sao chép toàn văn các công trình hoặc
thiết kế tốt nghiệp của người khác.
Tác giả luận văn
Trương Minh Hợi
MỤC LỤC
DANH MỤC CÁC CHỮ VIẾT TẮT....................................................................... i
DANH MỤC CÁC HÌNH VẼ.................................................................................. ii
DANH MỤC CÁC BẢNG ...................................................................................... iv
LỜI NÓI ĐẦU ...........................................................................................................v
Chương I: TỔNG QUAN VỀ MẬT MÃ VÀ HỆ MÃ RSA ..................................1
1.1. Giới thiệu chung ..............................................................................................1
1.2. Khái niệm hệ mật mã .......................................................................................2
1.3. Hệ mật mã khoá đối xứng ................................................................................3
1.3.1. Khái niệm cơ bản ......................................................................................3
1.3.2. Các thuật toán dùng trong hệ mật mã khoá đối xứng ...............................4
1.3.3. Những vấn đề cần giải quyết trong hệ mật mã khoá đối xứng .................4
1.4. Hệ mật mã khoá công khai ..............................................................................5
1.4.1. Ý tưởng xây dựng hệ mật mã khoá công khai ..........................................5
1.4.2. Hệ mật mã khoá công khai .......................................................................5
1.4.3. Các thuật toán dùng trong hệ mật mã khoá công khai ...........................11
1.5. Hệ mã RSA ....................................................................................................12
1.5.1. Giới thiệu chung về thuật toán mã hóa dữ liệu RSA ..............................12
1.5.2.Độ an toàn của hệ mã RSA......................................................................14
1.5.3. Ứng dụng của hệ mã RSA ......................................................................15
1.5.4. Một số tính chất của hệ mã RSA ............................................................16
1.6. Hệ chữ ký RSA ..............................................................................................17
Chương II: GIỚI THIỆU VỀ GIẢI PHÁP MPSFV6 VÀ OPEN VPN .............20
2.1. Nhu cầu ứng dụng MPSFV6 trên Cổng TTĐT tỉnh Nghệ An .......................20
2.2. Giới thiệu về MPSFV6 ..................................................................................21
2.2.1. Tính năng của MPSFV6 .........................................................................21
2.2.2. Khả năng sử dụng ...................................................................................22
2.3. Mô hình ứng dụng MPSFV6 trên hệ thống Cổng TTĐT tỉnh Nghệ An .......23
2.4. Mô hình triển khai hệ thống VPN của giải pháp MPSFV6 trên Cổng TTĐT
tỉnh Nghệ An .........................................................................................................32
2.4.1. Đối với hệ thống mạng của Sở Thông tin và Truyền thông ...................32
2.4.2. Đối với các đơn vị tham gia quản trị Cổng TTĐT tỉnh Nghệ An ..........33
2.5. Phần mềm mã nguồn mở OpenVPN ..............................................................35
Chương III: XÂY DỰNG CHỮ KÝ SỐ DỰA TRÊN MÃ KẾT HỢP ALT VÀ
RSA ...........................................................................................................................38
3.1. Tích không nhập nhằng..................................................................................38
3.2. Mã với tích không nhập nhằng ......................................................................40
3.2.1. Mã luân phiên .........................................................................................40
3.2.2. Đặc trưng của mã luân phiên ..................................................................46
3.3. Đề xuất sơ đồ chữ ký ALT - RSA .................................................................54
3.3.1 Sơ đồ tạo chữ ký ALT - RSA ..................................................................54
3.3.2. Sơ đồ giải mã chữ ký ALT – RSA .........................................................56
3.4. Ứng dụng hệ mã kết hợp ALT - RSA vào hệ thống MPSFV6 ......................57
3.4.1. Sơ đồ cài đặt ứng dụng ...........................................................................57
3.4.2. Cài đặt ứng dụng trên Server ..................................................................60
3.4.3. Cài đặt ứng dụng Client ..........................................................................62
KẾT LUẬN VÀ KIẾN NGHỊ SỬ DỤNG KẾT QUẢ NGHIÊN CỨU .............65
Kết quả đạt được ...................................................................................................65
Hướng phát triển ...................................................................................................66
TÀI LIỆU THAM KHẢO ......................................................................................67
DANH MỤC CÁC CHỮ VIẾT TẮT
STT
Viết tắt
1.
ALT
2.
ATTT
3.
CA
Tiếng Anh
Tiếng Việt
ALTernative code
Mã luân phiên
An toàn thông tin
Certification Authority
Tổ chức cung cấp dịch vụ Chứng
thực chữ ký số
Công nghệ thông tin
4.
CNTT
5.
IP
Internet Protocol
Giao thức Liên mạng
6.
LAN
Local Area Network
Mạng máy tính cục bộ
7.
TT&TT
Thông tin và Truyền thông
8.
TTĐT
Thông tin điện tử
9.
VPN
Virtual Private Network
Mạng riêng ảo
10.
WAN
Wide Area Network
Mạng diện rộng
i
DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Quá trình mã hoá và giải mã .......................................................................2
Hình 1.2: Hệ mật mã khoá bí mật ...............................................................................3
Hình 1.3: Sơ đồ mã hóa và giải mã .............................................................................7
Hình 1.4: Hệ mật mã khoá công khai bảo đảm tin cậy ...............................................9
Hình 1.5: Hệ mật mã khoá công khai bảo đảm tính xác thực ...................................10
Hình 1.6: Hệ mật mã khoá công khai bảo đảm tính xác thực và tin cậy ..................11
Hình 1.7: Sơ đồ các bước thực hiện mã hoá theo thuật toán RSA ............................13
Hình 1.8: Sơ đồ giải mã của hệ mã RSA ..................................................................14
Hình 2.1: Mô hình triển khai tường lửa MPSFV6 trên Cổng TTĐT tỉnh Nghệ An .23
Hình 2.2: Mô hình kết nối thử nghiệm MPSFV6_VPN ...........................................23
Hình 2.3: Thông số thiết lập VPN Server Site – to – Site.........................................25
Hình 2.4: Thông số thiết lập VPN Server Client – to – Site .....................................25
Hình 2.5: Kết quả tạo VPN Server ............................................................................25
Hình 2.6: Thông số card mạng ảo trên VPN Server .................................................26
Hình 2.7: Thông số tạo VPN Client Gateway ...........................................................26
Hình 2.8: Kết quả tạo VPN Client Gateway .............................................................27
Hình 2.9: Cài đặt gói phần mềm openvpn-install-2.3.0-I005-i686 ...........................27
Hình 2.10: Thông số thiết lập cấu hình cho VPN Client ..........................................28
Hình 2.11: Địa chỉ IP của mạng trong và thực hiện lệnh ping ..................................29
Hình 2.12: Truy cập dịch vụ web ..............................................................................29
Hình 2.13: Thông số card mạng ảo trên VPN Client Gateway .................................30
Hình 2.14: Kết quả thử nghiệm thành công ..............................................................31
Hình 2.15: Trạng thái kết nối của các VPN Server ...................................................31
Hình 2.16: Trạng thái kết nối của VPN Client tới VPN Server ................................31
Hình 2.17: Trạng thái kết nối của VPN Client tới VPN Server ................................32
ii
Hình 2.18: Nhật ký kết nối của toàn hệ thống ..........................................................32
Hình 2.19: Mô hình sử dụng MPSFV6 làm VPN Gateway ......................................33
Hình 2.20: Mô hình kết nối MPS VPN Client vào hệ thống ....................................34
Hình 2.21: Mô hình lưu khóa sử dụng OpenVPN ....................................................36
Hình 3.1: Các Overlap của hai phân tích của từ w ...................................................42
Hình 3.2: Trường hợp X -1X YY -1 – {} .......................................................48
Hình 3.3: Trường hợp Y -1(XY)+ (XY)+............................................................48
Hình 3.4: Trường hợp (XY)+ X -1 (XY)+ ...........................................................49
Hình 3.5: Sơ đồ tạo chữ ký ALT - RSA....................................................................54
Hình 3.6: Ví dụ quy trình mã hóa ALT với k=2 .......................................................55
Hình 3.7: Sơ đồ giải mã chữ ký ALT-RSA..............................................................56
Hình 3.8. Chức năng tạo chứng chỉ số Server trên hệ thống MPSFV6 hiện tại .......57
Hình 3.9: Tạo chứng chỉ VPN CA trên hệ thống MPSFV6 hiện tại .........................58
Hình 3.10: Sơ đồ cài đặt ứng dụng ở Server .............................................................59
Hình 3.11: Sơ đồ cài đặt hệ thống xác thực thông tin người dùng ...........................59
Hình 3.12: Form cập nhật thông tin người sử dụng ..................................................60
Hình 3.13: Thông báo tạo và ghi khóa thành công ...................................................60
Hình 3.14: Thông báo đã nhập thông tin tài khoản vào hệ thống .............................61
Hình 3.15: Xác nhận yêu cầu mã hóa ALT-RSA .....................................................61
Hình 3.16: Thông báo kết quả mã hóa thành công ...................................................61
Hình 3.17: Giao diện đăng nhập hệ thống VPN Client .............................................62
Hình 3.18: Giao diện hệ thống VPN Client ..............................................................62
Hình 3.19: Yêu cầu xác nhận giải mã ALT-RSA .....................................................63
Hình 3.20: Kết quả xác thực thông tin người dùng ...................................................63
Hình 3.21: Thông báo người dùng đã kết nối thành công vào hệ thống ...................64
iii
DANH MỤC CÁC BẢNG
Bảng 1.1: So sánh mã hóa quy ước và mã hóa công khai ...........................................8
Bảng 1.2: Bảng thời gian phân tích thừa số ..............................................................17
iv
LỜI NÓI ĐẦU
Trong một xã hội thông tin, các cá nhân và tổ chức giao tiếp, trao đổi thông
qua môi trường mạng. Với ưu điểm thuận tiện và nhanh chóng, trao đổi thông tin
trên Internet ngày càng được mở rộng và trở thành một phương thức hỗ trợ trao đổi,
giao tiếp không chỉ giữa các cá nhân, tổ chức mà còn trong cơ quan nhà nước, giữa
cơ quan nhà nước với công dân, doanh nghiệp. Tuy nhiên, trao đổi thông tin trên
Internet đặt ra các vấn đề về đảm bảo an toàn thông tin cần được cân nhắc như vấn
đề xác thực người giao dịch, bí mật thông tin, tính toàn vẹn của thông tin và chống
chối bỏ đối với những hành động đã thực hiện trong quá trình trao đổi thông tin.
Ứng dụng chữ ký số và dịch vụ chứng thực chữ ký số đã trở thành giải pháp hiệu
quả để giải quyết cho những vấn đề tồn tại nói trên.
Từ trước tới nay, giải pháp xây dựng chữ ký số bằng hệ mã RSA đã trở nên
phổ biến. Tuy nhiên cùng với sự phát triển nhanh chóng của công nghệ, không nằm
ngoài tình trạng chung của các giải pháp bảo mật, hệ thống chữ ký số luôn là mục
tiêu tấn công của tin tặc. Với ý nghĩa, tầm quan trọng của chữ ký số, hệ thống này
cần thiết phải luôn nghiên cứu những giải pháp cải tiến, nâng cao tính an toàn, bảo
mật thông tin
Với ý nghĩa trên, tác giả đã chọn đề tài luận văn tốt nghiệp “Xây dựng sơ đồ
chữ ký số dựa trên hệ mã kết hợp ALT và RSA” nhằm xây dựng một mô hình mã
hóa kết hợp giữa hệ mã luân phiên (Alternative code) và hệ mã RSA.Trong cơ chế
mã hóa hai lớp này trước hết thông tin sẽ được mã hóa bằng hệ mã hóa luân phiên.
Sau khi bản rõ đã mã hóa sẽ được đưa vào mảng và mã hóa tiếp bằng hệ mã RSA và
hiển thị xâu được mã hóa cho người giải mã. Bên cạnh đó đi sâu nghiên cứu xây
dựng bộ chữ ký số dựa trên hệ mã kết hợp ALT và RSA phục vụ xác thực người
truy cập vào hệ thống mạng riêng ảo (VPN), cải tiến từ hệ thống MPSFV6_VPN
của Phòng an toàn thông tin và tác chiến tin học – Cục Tin học nghiệp vụ (H49), Bộ
Công an.
v
Trong khuôn khổ nghiên cứu, luận văn được trình bày trong 3 chương chính:
Chương I: Tổng quan về mật mã và hệ mã RSA
Chương II: Giới thiệu về giải pháp MPSFV6 và Open VPN.
Chương III:Xây dựng chữ ký số dựa trên hệ mã kết hợp ALT và RSA
Hoàn thành luận văn này, em xin gửi lời cảm ơn chân thành đến thầy giáo
TS. Hồ Ngọc Vinh đã nhiệt tình giúp đỡ, hướng dẫn. Cảm ơn tập thể giảng viên
Viện CNTT&TT - Trường Đại học Bách Khoa Hà nội, bạn bè, đồng nghiệp và gia
đình đã luôn động viên, hỗ trợ trong thời gian qua.
Hà nội, tháng 4 năm 2015
Học viên
Trương Minh Hợi
vi
Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA
Chương I: TỔNG QUAN VỀ MẬT MÃ VÀ HỆ MÃ RSA
1.1. Giới thiệu chung
Mật mã đã được con người sử dụng từ lâu đời. Các hình thức mật mã sơ khai
đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai Cập cổ đại.
Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở khắp nơi trên
thế giới từ Đông sang Tây để giữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh
vực hoạt động giữa con người và các quốc gia, đặc biệt trong các lĩnh vực quân sự,
chính trị, ngoại giao. Mật mã trước hết là một loại hoạt động thực tiễn, nội dung
chính của nó là để giữ bí mật thông tin. Ví dụ muốn gửi một văn bản từ một người
gửi A đến một người nhận B, A phải tạo cho văn bản đó một bản mã mật tương ứng
và thay vì gửi văn bản rõ thì A chỉ gửi cho B bản mã mật, B nhận được bản mã mật
và khôi phục lại văn bản rõ để hiểu được thông tin mà A muốn gửi cho mình. Do
văn bản gửi đi thường được chuyển qua các con đường công khai nên người ngoài
có thể “lấy trộm” được, nhưng vì đó là bản mật mã nên không đọc hiểu được; Còn
A có thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểu được là
do hai người đã có một thoả thuận về một chìa khoá chung, chỉ với khoá chung này
thì A mới tạo được bản mã mật từ bản rõ và B mới khôi phục được bản rõ từ bản mã
mật. Khoá chung đó được gọi là khoá mật mã. Để thực hiện được một phép mật mã,
ta còn cần có một thuật toán biến bản rõ cùng với khoá mật mã thành bản mã mật và
một thuật toán ngược lại biến bản mật cùng với khoá mật mã thành bản rõ. Các
thuật toán đó được gọi tương ứng là thuật toán lập mã và thuật toán giải mã. Các
thuật toán này thường không nhất thiết phải giữ bí mật, mà cái luôn cần được giữ bí
mật là khoá mật mã. Trong thực tiễn, có những hoạt động ngược lại với hoạt động
bảo mật là khám phá bí mật từ các bản mã “lấy trộm” được, hoạt động này thường
được gọi là mã thám hay phá khoá.
Học viên: Trương Minh Hợi
1
Luận văn Thạc sĩ kỹ thuật
Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA
1.2. Khái niệm hệ mật mã
Hệ mật mã được định nghĩa là một bộ năm (P, C, K, E, D), trong đó:
1. P (Plaintext) là tập hữu hạn các các bản rõ có thể.
2. C (Ciphertext) tập hữu hạn các bản mã có thể.
3. K là tập hữu hạn các khoá có thể.
4. E (Encryption) là tập các hàm lập mã.
5. D (Decryption) là tập các hàm giải mã. Với mỗi k ∈ K, có một hàm lập mã:
ek ∈ E, ek : P → C và một hàm giải mã dk ∈ D, dk: C → P sao cho:
dk(ek(x)) = x , ∀x ∈ P.
Key k
Plaintext
(X)
Encryption
Key k
Ciphertext (Y)
Decryption
Plaintext (X)
Y= Ek(X)
Hình 1.1: Quá trình mã hoá và giải mã
Như vậy đầu ra là bản mã tuỳ thuộc vào khoá và bản rõ. Bản rõ sẽ được bên
gửi mã hoá thành bản mã gửi qua kênh liên lạc, tới người nhận. Bên nhận sẽ làm
ngược lại, nhận bản mã rồi giải mã thành bản rõ để đọc được nội dung.
Hệ mật mã có khoá dùng chung cho cả thuật toán mã hoá và giải mã gọi là
hệ mật mã khoá đối xứng (bí mật), còn hệ mật mã khoá dùng cho thuật toán mã hoá
khác với khoá dùng cho giải mã gọi là hệ mật mã khoá công khai (không đối xứng).
Sau đây chúng ta sẽ xem xét hai loại mật mã trên.
Học viên: Trương Minh Hợi
2
Luận văn Thạc sĩ kỹ thuật
Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA
1.3. Hệ mật mã khoá đối xứng
1.3.1. Khái niệm cơ bản
Đây là kiểu mật mã được sử dụng từ nhiều thế kỷ. Tên của nó bắt nguồn từ
thực tế là người gửi và người nhận dùng chung một khoá, và khoá này phải được
giữ bí mật. Như vậy là trước khi trao đổi bản tin cho nhau, phải có kênh liên lạc mật
để chuyền cho nhau khoá mật. Quá trình này gọi là phân phối khoá. Thực hiện quá
trình này rất khó khăn, vì nếu đã bảo đảm có kênh liên lạc mật để truyền khoá, thì
tại sao lại không truyền trực tiếp bản tin?
Mật mã khoá bí mật còn được gọi là mật mã đối xứng, bởi vì cùng một khoá
được sử dụng cho cả hai đầu của kênh liên lạc. Trên hình 2 minh hoạ mô hình hệ
mật mã khoá bí mật.
KA-B
Plaintext (X)
Message, m
KA-B
Encryption
algorithm
Ciphertext (Y)
Decryption
algorithm
KA-B(m)
Plaintext (X)
m=KA-B(KA-B(m))
Hình 1.2: Hệ mật mã khoá bí mật
Tại nơi gửi, tạo ra một tập hợp các bản rõ X = [X1, X2,…,XM]
Nguồn khoá tạo ra một tập hợp khoá K = [K1, K2,….,KL ]. Nếu khoá được tạo
ra tại nơi gửi, thì nó phải được truyền đến nơi nhận theo một kênh an toàn.
Bản rõ X, khoá K là đầu vào, Bộ mã dùng thuật toán mã hoá tạo ra được bản
mã Y = [Y1,Y2,….,YN ]. Ta có: Y = Ek (X)
Học viên: Trương Minh Hợi
3
Luận văn Thạc sĩ kỹ thuật
Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA
Y được tạo ra bằng cách sử dụng thuật toán mã hoá E một hàm của X và được
xác định nhờ khoá K.
Nơi nhận, nhận lại thông tin nhờ “bộ giả mã”, với hàm giải mã D
X = Dk (Y)
Mô hình trên bảo đảm cả tính tin cậy (bảo mật) và xác thực vì chỉ có người
gửi và nhận có khoá K, nhưng không làm chữ ký số được vì người nhận có thể giả
mạo bản tin và người gửi có thể chối bỏ bản tin.
1.3.2. Các thuật toán dùng trong hệ mật mã khoá đối xứng
Có nhiều thuật toán khoá bí mật, sau đây chỉ liệt kê một số loại thông dụng nhất:
- DES (Data Encryption Standard) chuẩn mã hoá dữ liệu, được chấp nhận
như là chuẩn của chính phủ Hoa kỳ năm 1977. DES dùng khoá 56 bits, được coi là
một thuật toán mạnh. Nhược điểm của DES là độ dài khoá ngắn 56 bits.
- Triple DES làm cho DES an toàn hơn, bằng cách dùng thuật toán DES 3
lần với 2 khoá khác nhau.
- IDEA (International Data Encryption Algorithm) được Jane L.Masey và
Xuejia Lai xây dựng tại Thụy Sĩ và được công bố năm 1990. IDEA sử dụng khoá
128 bits. IDEA cũng được coi là một thuật toán mạnh, dùng thay cho DES.
1.3.3. Những vấn đề cần giải quyết trong hệ mật mã khoá đối xứng
Hệ mật mã này có những vấn đề khó khăn sau:
- Phân phối khoá.
- Không thể gửi bản mã cho một người nào đó nếu người gửi không có khả
năng gửi cho người nhận khoá bí mật.
Học viên: Trương Minh Hợi
4
Luận văn Thạc sĩ kỹ thuật
Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA
1.4. Hệ mật mã khoá công khai
1.4.1. Ý tưởng xây dựng hệ mật mã khoá công khai
Trong mô hình mật mã cổ điển mà cho tới tận ngày nay vẫn đang được
nghiên cứu: A (người gửi) và B (người nhận) cùng chọn một khoá k bí mật. Sau đó
A và B dùng khoá k, luật mã hoá ek và luật giải mã dk để chuyển đổi bản tin rõ M
thành bản tin mã C. Trong đó dk giống như ek hoặc dễ dàng nhận được từ ek (ví dụ
như hệ mật DES có quá trình giải mã hoàn toàn tương tự như quá trình mã hoá
nhưng thủ tục khoá thì ngược lại). Các hệ mật này được gọi là các hệ mật mã khoá
bí mật. Một nhược điểm của hệ mật loại này là giữa A và B phải có một kênh an
toàn để trao đổi thông tin trước về khoá, trước khi gửi một bản tin bất kỳ. Hơn nữa
để bảo đảm tính mật thì sự phân phối khoá cho A và B (trong khi đó khoá chỉ dùng
một lần, không được trùng lặp khoá) là rất cồng kềnh. Hơn nữa một kênh truyền
riêng để phân phối khoá bí mật sẽ dẫn đến tốn kém về mặt kinh tế và tổ chức kênh
truyền (đặc biệt tốn kém khi A và B ở quá xa). Chính vì vậy mà ý tưởng xây dựng
một hệ mật mà khoá mã có thể được công khai (khoá công khai của từng người có
thể được quản lý chung bởi một Server quản lý khoá công cộng). Như vậy khi A gửi
tin cho B thì A không cần thông tin trước về khoá mà A chỉ việc lấy khoá công khai
của B về và dùng luật mã hoá ek mã hoá bản tin và gửi cho B. Để giải mã thì B dùng
luật giải mã dk và khoá bí mật của riêng mình giải mã bản tin đó. Đây chính là ý
tưởng xây dựng một hệ mật mã khoá công khai (khoá dùng chung) làm cho việc sử
dụng trở nên thuận tiện, giảm chi phí kênh truyền và khắc phục sự cồng kềnh trong
phân phối khoá.
1.4.2. Hệ mật mã khoá công khai
Ý tưởng về hệ mật mã khoá công khai đã được Diffie và Hellman đưa ra vào
năm 1976 đó là hệ mật mã bất đối xứng. Hay nói cách khác hệ mật mã khoá công
Học viên: Trương Minh Hợi
5
Luận văn Thạc sĩ kỹ thuật
Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA
khai có tính chất bất đối xứng, nó bao gồm việc sử dụng hai khoá riêng biệt tương
phản với mã hoá quy ước có tính chất đối xứng là chỉ sử dụng một khoá. Việc sử
dụng hai khoá có tầm quan trọng sâu sắc trong lĩnh vực cần tính bí mật phân bố
khoá và sự chứng thực. Sự phát triển của mật mã khoá công khai đóng một vai trò
rất lớn và tạo ra cuộc cách mạng trong toàn bộ lịch sử của mật mã. Trong đó những
giải thuật khoá công khai đều dựa trên những hàm toán học hơn là những phép thay
thế và chuyển vị trong những hệ mật mã cổ điển. Quan trọng hơn là mật mã khoá
công khai có tính chất bất đối xứng bao gồm việc sử dụng hai khoá riêng biệt. Khái
niệm mật mã khoá công khai đã tạo ra sự cố gắng để giải quyết hai vấn đề khó khăn
nhất trong mã hoá quy ước đó là sự phân bố khoá và chữ ký số:
- Trong mã hoá quy ước sự phân bố khoá yêu cầu hai hoặc nhiều người
truyền thông cùng (share – chia sẻ) tham gia một khoá mà bằng cách nào đó đã
được phân bố tới họ hoặc sử dụng một trung tâm phân bố khoá.
- Nếu mật mã đã trở nên phổ biến (không chỉ trong Quân đội, Công an, Đảng
chính mà còn dùng trong thương mại.v.v..) thì những bản tin và tài liệu điện tử sẽ
cần những chữ ký tương đương mà đã sử dụng trong các tài liệu giấy. Tức là một
phương pháp có thể được nghĩ ra có quy định làm hài lòng tất cả những user tham
gia khi mã một đoạn tin số được gửi bởi một cá nhân đặc biệt hay không?
Trong sơ đồ mã hoá quy ước, các khoá được dùng cho mã hoá và giải mã
một đoạn tin là giống nhau. Thay vì điều đó có thể phát triển giải thuật mã hoá dựa
trên một khoá cho mã hoá, một khoá khác (có liên quan tới khoá trên) cho giải mã.
Hơn nữa các giải thuật này có những đặc điểm quan trọng sau:
- Việc tính toán một cách không khả thi để xác định khoá giải mã trong khi
chỉ biết giải thuật mật mã và khoá mã hoá (khoá công khai).
- Trong RSA (sẽ nói ở phần sau) còn có đặc điểm hoặc một trong hai khoá
Học viên: Trương Minh Hợi
6
Luận văn Thạc sĩ kỹ thuật
Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA
quan hệ có thể được sử dụng cho mã hoá còn khoá kia được dùng cho giải mã.
Các bước tiến hành trong quá trình mã hoá công khai:
- Mỗi user tạo ra một cặp khoá để dùng cho mã hoá và giải mã bản tin mà sẽ
nhận.
- Mỗi hệ thống công bố rộng rãi khoá mã hoá bằng cách đặt khoá vào một
thanh ghi hay một file công khai. Đây chính là khoá công khai, khoá còn lại được
giữ riêng và bí mật.
- A muốn gửi bản tin cho B thì A mã hoá bản tin bằng khoá công khai của B
rồi gửi cho B.
- Khi B nhận được bản tin mã hoá, B giải bản mã bằng khoá bí mật của mình.
Không một người nào có thể giải mã bản mã này bởi chỉ có B mới có khoá bí mật.
Ta có sơ đồ mã hoá và giải mã sau:
Khóa công khai của B
Khóa bí mật của B
USER A
Bản tin
Giải thuật
mã hóa
Mật mã
Giải thuật
giải mã
Bản tin
USER B
Hình 1.3: Sơ đồ mã hóa và giải mã
Với cách tiếp cận trên, tất cả những người tham gia có thể truy xuất khoá
công khai. Khoá bí mật được tạo bởi từng cá nhân vì vậy không bao giờ được phân
bố. Ở bất kỳ thời điểm nào, hệ thống cũng có thể chuyển đổi cặp khoá để đảm bảo
tính bí mật. Bảng tóm tắt một số khía cạnh quan trọng về mã hoá quy ước và mã
hoá công khai: để phân biệt giữa hai loại, chúng ta sẽ tổng quát hoá liên hệ khoá sử
Học viên: Trương Minh Hợi
7
Luận văn Thạc sĩ kỹ thuật
Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA
dụng trong mã hoá công khai là khoá công khai và khoá bí mật.
Bảng tóm tắt:
Mã hoá quy ước
*Yêu cầu:
Mã hoá công khai
*Yêu cầu:
Giải thuật tương tự cho mã hoá và giải Một giải thuật cho mã hoá và một giải
mã.
thuật cho giải mã.
Người gửi và người nhận phải tham
Người gửi và người nhận mỗi người phải
gia cùng giải thuật và cùng khoá.
có cặp khoá riêng cho mình.
*Tính bảo mật:
*Tính bảo mật:
Khoá phải được giữ bí mật.
Một trong hai khoá phải được giữ bí mật.
Không thể hay ít nhất không có tính
Không thể hay ít nhất không có tính thực
thực tế để giải mã bản mã nếu thông
tế để giải mã đoạn tin nếu thông tin
tin “khác” không có sẵn.
“khác” không có sẵn.
Kiến thức về giải thuật cộng với các
Kiến thức về giải thuật cộng với một
mẫu về mật mã không đủ để xác định
trong các khoá, cộng với các mẫu về mật
khoá.
mã không đủ để xác định khoá kia.
Bảng 1.1: So sánh mã hóa quy ước và mã hóa công khai
Tùy thuộc vào cách sử dụng chúng ta có các mô hình khác nhau.
Trong mô hình đảm bảo tính tin cậy (Confidentially), người nhận B phát sinh
ra một cặp khoá: khoá công khai KUb và khoá cá nhân KRb. Khoá công khai KUb
được công bố cho tất cả mọi người, còn khoá cá nhân KRb chỉ có người B biết. Khi
người gửi A muốn gửi bản tin cho người nhận B, sẽ dùng khoá công khai của người
nhận B để mã hoá. Chỉ có người nhận B sử dụng khoá cá nhân của mình KRb mới
giải mã được bản tin.
Học viên: Trương Minh Hợi
8
Luận văn Thạc sĩ kỹ thuật
Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA
Với bản tin X và khoá KUb ở đầu vào, người gửi A dùng thuật toán mã hoá E
để tạo ra bản mã Y = [Y1,Y2,…YN]:
Y = EKUb (X)
Người nhận B dùng thuật toán giải mã D để tạo lại bản tin X:
X = DKRb (Y)
Mô hình hệ mật mã khoá công khai dùng để bảo đảm độ tin cậy được minh
hoạ trên hình 1.4:
Thám
mã
Nơi gửi
Người gửi
A
Nơi nhận
X
Mã hoá
Y
Giải mã
Người
KRb
nhận B
Nguồn khoá
KUb
của B
Hình 1.4: Hệ mật mã khoá công khai bảo đảm tin cậy
Trong mô hình bảo đảm tính xác thực, A chuẩn bị gửi bản tin cho B, dùng
khoá cá nhân của mình là KRa để mã hoá.
B có thể giải mã dùng khoá công khai của A là KUa. Chỉ có A mới tạo được
bản mã, nó sử dụng làm chữ ký số.
Với bản tin X và khoá KRa ở đầu vào, người gửi A dùng thuật toán mã hoá E
để tạo ra bản mã Y = [Y1,Y2,…,YN]:
Y = EKRa (X)
Học viên: Trương Minh Hợi
9
Luận văn Thạc sĩ kỹ thuật
Xây dựng sơ đồ chữ ký số dựa trên hệ mã kết hợp ALT và RSA
Người nhận B dùng thuật toán giải mã D để tạo lại bản tin X
X = DKUa (X)
Mô hình hệ mật mã khoá công khai để bảo đảm tính xác thực được minh hoạ trên
hình 1.5.
Thám mã
Nơi gửi
Người gửi
A
X
Mã hoá
Y
Nơi nhận
Giải mã
X
Người nhận
B
KRa
Nguồn khóa
của A
KUa
Hình 1.5: Hệ mật mã khoá công khai bảo đảm tính xác thực
Hệ mật mã này không bảo đảm được tính tin cậy, bản tin được truyền đi
không thể bị thay thế, nhưng bất kỳ ai dùng khoá công khai của A đều đọc được bản
tin này.
Để bảo đảm cả tính tin cậy và xác thực, phải sử dụng hai lần mã hoá. Người
gửi A mã bản tin dùng khóa cá nhân của mình là KRa (tạo ra chữ ký số). Sau đó lại
mã hoá lần hai dùng khoá công khai của người nhận B là KUb. Quá trình giải mã tại
nơi nhận sẽ xảy ra ngược lại với quá trình trên. Người nhận sẽ giải mã bản mã dùng
khoá cá nhân của mình là KRb. Sau đó lại giải mã lần hai dùng khoá công khai của
người gửi A là KUa:
Z = EKUb (EKRa (X))
X = DKUa (DKRb (Z))
Mô hình hệ mật mã khoá công khai bảo đảm tính tin cậy và xác thực được
Học viên: Trương Minh Hợi
10
Luận văn Thạc sĩ kỹ thuật
- Xem thêm -