BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ĐỒ ÁN TỐT NGHIỆP Tìm hiểu, thực thi lược đồ chia sẻ bí mật Sharmir kết hợp chuẩn ký số ECDSA Ngành An toàn thông tin Mã số 7 48 02 02 Sin[.]
Trang 1BAN CƠ YẾU CHÍNH PHỦ
Trang 2Hà Nội, 2022BAN CƠ YẾU CHÍNH PHỦ
Trang 3Hà Nội, 2022
Trang 4M ỤC LỤC
Chương 1 Giới thiệu chung về hệ mật RSA
1.1 Lịch sử ra đời RSA
1.2 Hoạt động của thuật toán RSA
1.2.1 Mô tả sơ lược
1.2.2 Tạo khóa
1.2.3 Mã hóa
1.2.4 Giải mã
1.2.5 Ví dụ
1.3 Tạo chữ ký số cho văn bản
1.4 Vấn đề an toàn của RSA
1.5 Các vấn đề đặt ra trong thực tế
1.5.1 Quá trình tạo khóa
1.5.2 Phân phối khóa
1.5.3 Tấn công dựa trên thời gian
1.6 Sự cần thiết của việc chuyển đổi bản rõ
1.7 Kết luận chương 1
Chương 2 Chuyển đổi bản rõ theo PKCS #1 v1.5
2.1 Lược đồ chuyển đổi bản rõ theo PKCS #1 v1.5
2.1.1 Chuyển đổi bản rõ theo PKCS #1 v1.5
2.1.2 Giải chuyên đổi bản rõ theo PKCS #1 v1.5
2.2 Hỗ trợ lược đồ chuyển đổi bản rõ PKCS #1 v1.5 trong các phiênbản mới hơn của chuẩn mật mã RSA
2.3 Kết luận chương 2
Chương 3 Lược đồ chuyển đổi bản rõ OAEP
3.1 Mô tả chung về lược đồ chuyển đổi bản rõ OAEP
3.1.1 Chuyển đổi bản rõ theo lược đồ OAEP
3.1.2 Giải chuyển đổi bản rõ theo lược đồ OAEP
3.1.3 Sai lầm trong cách hiểu OAEP
3.2 Áp dụng lược đồ OAEP vào hệ mật RSA
3.2.1 Chuyển đổi bản rõ theo lược đồ OAEP
3.2.2 Giải chuyển đổi bản rõ theo OAEP
Trang 5Chương 4 Xây dựng chương trình minh họa hoạt động của lược đồ chuyển đổi bản rõ
4.1 Yêu cầu đối với chương trình
4.2 Lựa chọn công cụ lập trình
4.3 Tính giá trị băm của P
4.4 Giới thiệu chương trình
4.5 Kết luận chương 4
Kết luận
Tài liệu tham khảo
Phụ lục
Trang 6D ANH MỤC KÍ HIỆU VÀ VIẾT TẮT
|| Phép nối hai chuỗi bít (hoặc chuỗi octet)
||X|| Độ dài của chuỗi bít (hoặc chuỗi octet) X
⊕ Phép cộng từng bít theo mô-đun 2
Số nguyên nhỏ nhất không nhỏ hơn
Số nguyên lớn nhất không lớn hơn
EME Encoding Method for Encryption
I2OSP Integer To Octet String Primitive
MGF Mask Generation Function
OAEP Optimal Asymmetric Encryption PaddingPKCS Public-Key Cryptography Standard
PS Padding String
RFC Request for Comments
RSAES RSA Encryption Scheme
Trang 7D ANH MỤC HÌNH VẼ
Hình 2.1 Giải chuyển đổi bản rõ theo PKCS #1 v1.5 2
Hình 3.2 Giải chuyển đổi bản rõ theo lược đồ OAEP 2
Hình 3.4 Chuyển đổi bản rõ theo lược đồ OAEP trong PKCS #1 v2.0 2Hình 3.5 Giải chuyển đổi bản rõ theo lược đồ OAEP trong PKCS #1 v2.0 2Hình 4.1 Kết quả chuyển đổi chuỗi rỗng trước khi băm bằng SHA1 2Hình 4.2 Giao diện chương trình khi chuyển đổi bản rõ 2Hình 4.3 Giao diện chương trình khi giải chuyển đổi bản rõ 2Hình 4.4 Thông báo lỗi vì chuỗi M chứa kí tự không hợp lệ 2
Trang 9L ỜI CẢM ƠN
Trong quá trình thực hiện đồ án tốt nghiệp này, tôi đã nhận được sự giúp đỡtận tình của cán bộ hướng dẫn là TS Nguyễn Mạnh Hợp – Giảng viên Khoa Antoàn thông tin Học viện Kỹ thuật Mật mã, sự quan tâm sâu sát của cán bộ Hệ quản
lý học viên quốc tế, sự động viên của người thân và bạn bè
Xin cảm ơn tất cả mọi người đã tạo những điều kiện tốt nhất để tôi hoànthành đồ án tốt nghiệp này!
SINH VIÊN THỰC HIỆN ĐỒ ÁN
Lê Thế Công
Trang 10L ỜI NÓI ĐẦU
Trong cuộc sống thường ngày, việc giữ bí mật các thông tin quan trọng làviệc cần thiết, đặc biệt là các thông tin có ảnh hưởng tới sự phát triển của tổ chức,công ty, an ninh của một quốc gia, đòi hỏi người tham gia giữ bí mật phải thật sựtin tưởng lẫn nhau, tin tưởng quyết định của nhau Nhưng trên thực tế, sự tin tưởngnày không thể được đảm bảo, bởi chỉ cần một người lộ bí mật thì toàn bộ các thôngtin quan trọng sẽ bị lộ, gây ảnh hưởng vô cùng to lớn Nhất là khi mà khoa học kỹthuật ngày càng phát triển mạnh mẽ, các phương tiện truyền thông ngày càng phổbiến, thì việc đảm bảo các thông tin quan trọng được giữ bí mật luôn là vấn đềnóng được nhiều người quan tâm
Lược đồ chia sẻ bí mật không phải là một lĩnh vực mới mẻ trong bảo mật antoàn thông tin, nhưng hứa hẹn mang đến nhiều ứng dụng thực tiễn vô cùng mới mẻtrong các lĩnh vực cần được đảm bảo giữ bí mật Chính vì vậy, đồ án xin lựa chọn
đề tài: “Tìm hiểu, thực thi lược đồ chia sẻ bí mật Sharmir kết hợp chuẩn ký sốECDSA” để làm đồ án tốt nghiệp
Đồ án được thực hiện nhằm mục đích tìm hiểu về các vấn đề an toàn đối với
hệ mật RSA
Mục tiêu đặt ra khi thực hiện đồ án là:
1 - Tổng quan chia sẻ bí mật
2 - Lược đồ chia sẻ bí mật Shamir kết hợp chuẩn ký số ECDSA
3 - Xây dựng chương trình thực thi lược đồ chia sẻ bí mật Shamir kêt hợpchuẩn ECDSA
Sau thời gian khoảng ba tháng thực hiện đồ án, các mục tiêu về cơ bản đãđạt được Tuy nhiên mật mã là lĩnh vực khoa học phức tạp, thời gian thực hiện đồ
án tương đối ngắn nên chắc chắn không tránh khỏi thiếu sót Rất mong được sựgóp ý của các thầy cô, cũng như các bạn học viên để đồ án này được hoàn thiệnhơn
SINH VIÊN THỰC HIỆN ĐỒ ÁN
Lê Thế Công
Trang 11C HƯƠNG 1 T ỔNG QUAN CHIA SẺ BÍ MẬT
1.1 Giới thiệu
Trước đây khi công nghệ máy tính chưa phát triển, khi nói đến
vấn đề an toàn bảo mật thông tin (Information Security), chúng ta
thường hay nghĩ đến các biện pháp nhằm đảm bảo cho thông tin được
trao đổi hay cất giữ một cách an toàn và bí mật Chẳng hạn là các biện
pháp như:
· Đóng dấu và ký niêm phong một bức thư để biết rằng lá thư
có được chuyển nguyên vẹn đến người nhận hay không
· Dùng mật mã mã hóa thông điệp để chỉ có người gửi và
người nhận hiểu được thông điệp Phương pháp này thường
được sử dụng trong chính trị và quân sự (xem chương 2)
· Lưu giữ tài liệu mật trong các két sắt có khóa, tại các nơi
được bảo vệ nghiêm ngặt, chỉ có những người được cấp
quyền mới có thể xem tài liệu
Với sự phát triển mạnh mẽ của công nghệ thông tin, đặt biệt là
sự phát triển của mạng Internet, ngày càng có nhiều thông tin được
lưu giữ trên máy vi tính và gửi đi trên mạng Internet Và do đó xuất
hiện nhu cầu về an toàn và bảo mật thông tin trên máy tính Có thể
phân loại mô hình an toàn bảo mật thông tin trên máy tính theo hai
hướng chính như sau:
1) Bảo vệ thông tin trong quá trình truyền thông tin trên mạng(Network Security)
2) Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi
sự xâm nhập phá hoại từ bên ngoài (System Security)
1.2 Vai trò chia sẻ bí mật trong ATTT
Thông tin cần giữ bí mật được chia thành nhiều mảnh và giao cho nhiềungười, mỗi người giữ một mảnh Thông tin này có thể được xem lại, khimọi người giữ các mảnh nhất trí Các mảnh khớp lại để được tin gốc
- Thông tin cần giữ bí mật được chia thành nhiều mảnh và trao cho mỗi
Trang 12thành viên tham gia nắm giữ.
- Khi các mảnh được khớp lại sẽ cho ta tín hiệu gốc
Các mảnh được chia Thông tin bí mật
1.3 Các lược đồ chia sẻ bí mật thông dụng
– Sơ đồ chia sẻ chia sẻ chia sẻ bí mật Shamir
– Sơ đồ bí mật Blackley
– Sơ đồ bí mật dựa trên Định lý số đồng dư Trung Quốc
1.4 So sánh các lược đồ chia sẻ bí mật
1.5 Kết luận
Sơ đồ chia sẻ bí mật là một phương thức để chia sẻ bí mật ra nhiều phần, sau
đó phân phối cho một tập hợp những người tham gia sao cho các tập controng số những người này được chỉ định, có khả năng khôi phục lại bí mậtbằng cách kết hợp dữ liệu của họ
Trang 13Một sơ đồ chia sẻ bí mật là hoàn hảo, nếu bất kì một tập hợp những ngườitham gia mà không được chỉ định, sẽ không thu được thông tin về bí mật.
Chương 2 Lược đồ chia sẻ bí mật shamir kết hợp chuẩn ký số ECDSA
và trong một thời gian dài xác thực ECDSA chủ yếu là một chủ đề của nghiên cứu
lý thuyết
Thuật toán chữ ký số dựa trên đường cong Elliptic (ECDSA – Elliptic CurveDigital Signature Algorithm), lần đầu tiên được đề xuất vào năm 1992 bởi ScottVanstone để đáp ứng yêu cầu của NIST (Viện Tiêu chuẩn và Công nghệ Quốcgia) ECDSA được chấp nhận là một tiêu chuẩn ISO vào năm 1998 (Tổ chức tiêuchuẩn quốc tế) (ISO 14888-3), được chấp nhận là một tiêu chuẩn ANSI vào năm
1999 (Viện tiêu chuẩn quốc gia Hoa Kỳ) (ANSI X9.62), và được tổ chức IEEEchấp nhận vào năm 2000 (Viện tiêu chuẩn của Kỹ sư Điện và Điện tử) (IEEE1363-2000) và tiêu chuẩn Trin (Trin 186-2)
Thuật toán mã hóa đường cong Elliptic (ECC) hoặc Thuật toán chữ ký số đườngcong Elliptic (ECDSA) đã được biết đến và nghiên cứu trong thế giới toán họctrong 150 năm trước khi được áp dụng vào mật mã học; Neal Koblitz và Victor S.Miller ban đầu đề xuất nó vào năm 1985 Tuy nhiên, vào năm 2005, NSA đã pháthành một bộ thuật toán bảo mật mới được chính phủ Hoa Kỳ chứng nhận cũng baogồm ECC, trong một bản phát hành có tên là Suite B
Mật mã đường cong Elliptic là một thuật toán mã hóa mới đã được phát triển đểong tính bảo mật và hiệu suất mạng mạnh mẽ hơn Một số nhà nghiên cứu đã tuyên
bố rằng mật mã ECC có thể cung cấp bảo mật mạnh mẽ với khóa 164 bit như các
Trang 14hệ thống khác đạt được với khóa 1024 bit Với sự ra đời của các thiết bị di độngđược sử dụng cho các giao dịch riêng tư cao, các chương trình mã hóa chi phí thấp,
an toàn hơn đang trở nên đáng mong đợi Mật mã ECC giúp thiết lập bảo mật cấpbằng hoặc lớn hơn RSA hoặc DSA, hai phương thức mã hóa được áp dụng rộng rãinhất – và nó thực hiện với chi phí tính toán ít hơn, yêu cầu ít năng lực xử lý hơn và
di chuyển tốt hơn phạm vi di động khi triển khai
ECDSA (Thuật toán Chữ ký số Elliptic Curve) dựa trên DSA, nhưng sử dụng mộtcách tiếp cận toán học khác để tạo khóa ECC là một phương trình toán học tự thựchiện, nhưng ECDSA là thuật toán được áp dụng cho ECC để làm onge phù hợpvới mã hóa bảo mật Giống như RSA và DSA, nó là một sơ đồ mã hóa bất đốixứng khác, nhưng trong ECC, phương trình xác định cặp khóa công khai / riêngbằng các phép toán trên các điểm của các đường onge lip, thay vì mô tả nó là sảnphẩm của các số nguyên tố rất lớn
Bảo mật xác thực khóa công khai đường cong Elliptic thực hiện ECC bằng cách sửdụng đường cong giả ngẫu nhiên trên trường nguyên tố theo phương trình toán họcy² = x³ + ax + b bằng cách sử dụng các tham số miền của đường cong ECDSA cóthể tự tính toán, cài đặt và khóa cặp khóa riêng / chung mà không cần bất kỳ sựgiúp đỡ bên ngoài Không gian bộ nhớ riêng được đặt sang một bên để lưu trữ vàdùng chứng chỉ khóa chung Bảo mật xác thực khóa công khai đường cong Ellipticcũng có bộ đếm giảm tốc 17-bit có thể thiết lập một lần, không biến đổi Sự đơngiản về giao diện của ECDSA tạo điều kiện cho việc sử dụng Bảo mật xác thựckhóa công khai đường cong Elliptic trong một loạt các ứng dụng
Thuật toán chữ ký số dựa trên đường cong Elliptic gồm các bước như sau:
* Tạo khóa ECDSA Bên A thực hiện như sau:
1 Chọn một đường onge lip E được xác định trên p.ℤ
Số lượng điểm trong E ( p) nên chia hết cho một số nguyên tố r lớn.ℤ
2 Chọn một điểm cơ bản G E (p) của thứ tự r (có nghĩa là rG = ).∈ 𝒪
3 Chọn một số nguyên s ngẫu nhiên trong khoảng [1, r – 1]
4 Tính W = sG Khóa chung là (E, G, r, W), khóa riêng là s
Trang 15* Tính toán chữ ký ECDSA Để ký một tin nhắn m, A thực hiện như sau:
1 Tính toán đại diện tin nhắn f = H (m), sử dụng hàm băm mật mã Lưu ýrằng f có thể lớn hơn r nhưng không dài hơn (bit đo)
2 Chọn một số nguyên u ngẫu nhiên trong khoảng [1, r – 1]
3 Tính V = uG = (xV, yV) và c ≡ xV mod r (goto (2) nếu c = 0)
4 Tính d ≡ u-1*(f + s*Pc) mod r (2) nếu d = 0) Chữ ký cho tin nhắn m làcặp số nguyên (c, d)
* Xác minh chữ ký ECDSA Để xác minh chữ ký của A, B nên làm như sau:
1 Lấy bản sao xác thực của khóa công khai của A (E, G, r, W) Xác minhrằng c và d là các số nguyên trong khoảng [1, r – 1]
2 Tính f = H (m) và h ≡ d-1 mod r
3 Tính h1 f *h mod r và h2 c*h mod r
4 Tính h1G + h2W = (x1, y1) và c1 ≡ x1 mod r Chấp nhận chữ ký khi và chỉkhi c1 = c
Để có ích về mặt mật mã, tham số r nên có ít nhất 250 bit Cơ sở cho tính bảo mậtcủa các hệ thống mật mã đường cong elliptic là bài toán logarit rời rạc đường congelliptic (ECDLP): cho hai điểm G, W E ( p), trong đó W nằm trong nhóm con củaℤthứ tự r được tạo bởi G, xác định một số nguyên k sao cho W = k*G và 0 < k <r.DSA [Trin-186-4] và ECDSA [X9.62] là hai sơ đồ chữ ký số tiêu chuẩn Chúngcung cấp tính toàn vẹn dữ liệu và tính xác thực có thể kiểm chứng trong các giaothức khác nhau
Một đặc điểm của DSA và ECDSA là chúng cần tạo ra, cho mỗi thế hệ chữ ký,một giá trị ngẫu nhiên mới (sau đây được chỉ định là k) Để bảo mật hiệu quả, kphải được chọn ngẫu nhiên và thống nhất từ một tập hợp các số nguyên mô-đun, sửdụng quy trình bảo mật bằng mật mã Ngay cả những vấn đề phát sinh nhỏ trongquá trình đó cũng có thể bị biến thành các cuộc tấn công vào các sơ đồ chữ ký Bảnchất ngẫu nhiên của DSA và ECDSA cũng làm cho việc triển khai khó kiểm trahơn Kiểm tra tự động không thể phát hiện một cách đáng tin cậy liệu việc triển
Trang 16khai có sử dụng nguồn ngẫu nhiên có chất lượng đủ cao hay không Có thể biếnDSA và ECDSA thành các sơ đồ xác định bằng cách sử dụng quy trình xác định đểtạo giá trị “ngẫu nhiên” k Quá trình đó phải đáp ứng một số đặc điểm về mật mã
để duy trì các thuộc tính có thể kiểm chứng và được mong đợi từ các sơ đồ chữ ký;
cụ thể, đối với bất kỳ ai không biết khóa riêng của chữ ký, ánh xạ từ các thông điệpđầu vào đến các giá trị k tương ứng phải được phân biệt về mặt tính toán với chứcnăng được chọn ngẫu nhiên và thống nhất (từ bộ thông báo đến tập hợp các giá trị
k có thể) sẽ trả về Các tính năng cần đáp ứng như sau:
* Chữ ký phải tương thích hoàn toàn với DSA và ECDSA đơn giản Các thựcthể xác minh chữ ký không cần phải thay đổi hoặc thậm chí nhận thức được quátrình được sử dụng để tạo k
* Tạo cặp khóa không bị thay đổi Các khóa riêng hiện có có thể được sử dụngvới DSA và ECDSA xác định
* Sử dụng DSA và ECDSA xác định không yêu cầu lưu trữ hem bất kỳ giá trị
bí mật hoặc công khai nào
* DSA và ECDSA có thể được áp dụng trên cùng các đầu vào như là DSA vàECDSA đơn giản, cụ thể là giá trị băm được tính trên thông điệp sẽ được ký vớihàm băm bảo mật bằng mật mã
Một vài khái niệm liên quan đến ECDSA:
Khóa riêng: Một số bí mật, chỉ được biết đến với người tạo ang Khóa riêng về cơbản là một số được tạo ngẫu nhiên
Khóa chung: Một số tương ứng với khóa riêng, nhưng không cần giữ bí mật Khóacông khai có thể được tính từ khóa riêng, nhưng không phải ngược lại Khóa côngkhai có thể được sử dụng để xác định xem chữ ký có phải là chính ang hay không(nói cách khác, được tạo bằng khóa thích hợp) mà không yêu cầu khóa riêng phảiđược tiết lộ
Chữ ký: Một số chứng minh rằng một hoạt động ký kết đã diễn ra Một chữ kýđược tạo ra từ hàm băm cộng với một khóa riêng Chữ ký chính là hai số được gọi
là r và s Với khóa chung, thuật toán ECDSA được sử dụng trên chữ ký để xác địnhrằng nó ban đầu được tạo ra từ hàm băm và khóa riêng mà không cần biết khóa
Trang 17riêng Chữ ký kết quả có độ dài 73, 72 hoặc 71 byte (với xác suất xấp xỉ lần lượt là25%, 50% và 25% - mặc dù kích thước thậm chí nhỏ hơn mức có thể với xác suấtgiảm theo cấp số nhân).
Để ứng dụng thuật toán tạo chữ ký số cần đáp ứng một số yêu cầu sau: Tối ưuthuật toán ký số; tối ưu kích thước dữ liệu (tối ưu các trường dữ liệu trong chứngthư số) được lưu trên thiết bị di động và dữ liệu được truyền trên mạng di động; tối
ưu hóa giao thức quản lý chứng thư số; tối ưu lược đồ kiểm tra chứng thư số Vớidịch vụ chứng thực chữ ký số, việc tính toán tạo cặp khóa công khai – bí mật, ký
số và xác thực chữ ký số trên thiết bị di động là không thể thiếu.Thuật toán mã hóakhóa công khai dựa vào thuật toán RSA được lựa chọn cho thuật toán ký số Tuynhiên, việc tạo cặp khóa dựa trên thuật toán RSA trên thiết bị di động tốn nhiềuthời gian hoặc không thể xảy ra do thiếu bộ nhớ và hiệu suất CPU nhỏ Do đó, cần
có một thuật toán phù hợp để tính toán tạo ra cặp khóa sử dụng cho thiết bị đượcứng dụng
Thuật toán ECDSA: Thuật toán tạo chữ ký số này có ưu điểm là kích thước khóanhỏ dựa vào độ khó của bài toán logarit rời rạc trên đường cong elliptic (ECDLP).ECDSA cần ít thời gian để tạo cặp khóa công khai trong thiết bị di động hơn thuậttoán RSA Vì kích thước khóa ECDSA 256 bit, nhỏ hơn RSA 2048-bit nên kíchthước chứng thư số cũng giảm So với RSA, việc triển khai ECDSA có những hiệuquả sau: ang tốc độ, yêu cầu khả năng tính toán thấp hơn, tiết kiệm bộ nhớ, tiếtkiệm ang thông đường truyền, ang hiệu quả lưu trữ, tiết kiệm năng lượng Nhưvậy, với ECDSA, độ dài khóa là 256-bit, tương đương với RSA độ dài 2048-bit,tốn ít thời gian hơn để sinh ra cặp khóa công khai trên thiết bị di động so với sửdụng RSA Hơn nữa, với việc sử dụng khóa ECDSA 256-bit, kích cỡ của chứngthư số cũng được giảm đi
2.2 Lược đồ chia sẻ bí mật Shamir kết hợp chuẩn ký số ECDSA
2.2.1 Lược đồ chia sẻ bí mật Shamir
Ý tưởng sơ đồ
● Trung tâm sẽ chia bí mật thành nphần, cần tối thiểu k phần để có
thể khôi phục lại bí mật (0<k<=n)