Chữ ký số trên đường cong Elliptic (ECDSA

71 1.4K 8
Chữ ký số trên đường cong Elliptic (ECDSA

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Contents MỞ ĐẦU Ngày với phát triển mạnh mẽ công nghệ thông tin, truyền thông nói chung Internet nói riêng giúp cho việc trao đổi thông tin nhanh chóng, dễ dàng, Email cho phép người ta nhận hay gửi thư máy tính mình, E-business cho phép thực giao dịch mạng Do vấn đề phát sinh thông tin bị trộm cắp, sai lệch, giả mạo Điều ảnh hưởng tới tổ chứa, công ty hay quốc gia Những bí mật kinh doanh, tài mục tiêu đối thủ cạnh tranh Những tin tức an ninh quốc gia mục tiêu tổ chức tình báo nước Để giải tình hình an toàn thông tin đặt cấp thiết Kỹ thuật mật mã giải pháp an toàn truyền thông Kỹ thuật có từ ngàn xưa đơn giản, ngày có mạng máy tính người ta dùng mật mã đại Các nhà khoa học phát minh hệ mật mã nhằm che dấu thông tin làm rõ chúng để tránh dòm ngó kẻ cố tình phá hoại hệ mật: RSA, Elgamal… an toàn có độ dài khoá lớn nên số lĩnh vực ứng dụng Chính người ta phát minh hệ mật hệ mật đường cong elliptic, hệ mật đánh giá hệ mật có độ bảo mật an toàn cao hiệu nhiều so với hệ mật công khai khác, ứng dụng nhiều lĩnh vực sử dụng nhiều nơi giới nhiên mẻ Việt Nam Trong tương lai gần Hệ mật đường cong Elliptic sử dụng cách phổ biến thay hệ mật trước Đồ án tốt nghiệp em nghiên cứu Chữ ký số đường cong Elliptic (ECDSA) Qua thời gian thực tập Bộ môn An ninh mạng, thầy giáo, xem thêm qua số tài liệu tham khảo, em có nhìn khái quát vấn đề tìm hiểu Dưới báo cáo thực tập em em tìm hiểu tìm hiểu Mong thầy giáo có nhận xét để em hiểu sâu lĩnh vực này, bổ sung vào đồ án tốt nghiệp Chương I: TỔNG QUAN VỀ MẬT MÃ Hệ mật nói chung Thay cho dùng quy tắc, quy định luật lệ, mã hoá dựa nghành toán học, gọi mật mã để bảo vệ tính riêng tư thông tin cho người Mặc dù toán học làm cho mật mã phức tạp, nguyên lý mật mã đơn giản Mỗi hệ mật mã bao gồm phần sau: - Bản tin ta muốn viết thành mật mã (được gọi rõ - Plaintext) - Bản tin sau mã hoá (được gọi mã - Ciphertext) - Thuật toán mã hoá, hàm toán học dùng để mã hoá tin - Khoá (hoặc khoá - Keys), số, từ câu sử dụng thuật toán mã hoá Mục đích mật mã làm cho người khả tái tạo lại rõ từ mã mà khoá tương ứng Trên hình 1.1 minh hoạ trình mã hoá giải mã Mã hoá Bản rõ Bản mã Giải mã Bản rõ Hình 1.1:Quá trình mã hoá giải mã Như đầu mã tuỳ thuộc vào khoá rõ Bản rõ bên gửi mã hoá (encryption) thành mã gửi qua kênh liên lạc, tới người nhận Bên nhận làm ngược lại, nhận mã giải mã (decryption) thành rõ để đọc nội dung Hệ mật mã có khoá dùng chung cho thuật toán mã hoá giải mã gọi hệ mật mã khoá đối xứng (bí mật), 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 hệ mật mã khoá công khai (không đối xứng) Sau xem xét hai loại mật mã Hệ mật mã khoá đối xứng 2.1 Khái niệm Đây kiểu mật mã sử dụng từ nhiều kỷ Tên bắt nguồn từ thật người gửi người nhận dùng chung khoá, khoá phải giữ bí mật Như trước trao đổi tin cho nhau, phải có kênh liên lạc mật để chuyền cho khoá mật Quá trình gọi phân phối khoá Thực trình khó khăn, bảo đảm có kênh liên lạc mật để truyền khoá, lại không truyền trực tiếp tin? Mật mã khoá bí mật gọi mật mã đối xứng, khoá sử dụng cho hai đầu kênh liên lạc Trên hình 1.2 minh hoạ mô hình hệ mật mã khoá bí mật Tại Thám mã Người gửi A X Y Mã hoá K K Giả mã X Người nhận B Kênh an toàn Nguồn khoá Hình 1.2: Hệ mật mã khoá đối xứng nơi gửi, tạo tập hợp rõ X=[X1, X2,…,XM ] Nguồn khoá tạo tập hợp khoá K=[K1, K2,….,KL ] Nếu khoá tạo nơi gửi, phải truyền đến nơi nhận theo kênh an toàn Bản rõ X, khoá K đầu vào, Bộ mã dùng thuật toán mã hoá tạo mã Y=[Y1, Y2,….,YN ] Ta có: Y=Ek(X) Y tạo cách sử dụng thuật toán mã hoá E hàm X 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 bảo đảm tính tin cậy (bảo mật) xác thực có người gửi nhận có khoá K, không làm chữ ký số người nhận giả mạo tin người gửi chối bỏ tin 2.2 Các thuật toán dùng hệ mật mã khoá đối xứng Có nhiều thuật toán khoá bí mật, sau liệt kê số loại thông dụng nhất: • DES (Data Encryption Standard) chuẩn mã hoá liệu, chấp nhận chuẩn phủ Hoa kỳ năm 1977 DES dùng khoá 56bits, coi thuật toán mạnh Nhược điểm DES độ dài khoá ngắn 56bits • Triple DES làm cho DES an toàn hơn, cách dùng thuật toán DES lần với khoá khác • IDEA(International Data Encryption Algorithm) Jane L.Masey Xuejia Lai xây dựng Thụy Sĩ công bố năm 1990 IDEA sử dụng khoá 128 bits IDEA coi thuật toán mạnh, dùng thay cho DES 2.3 Những vấn đề cần giải hệ mật mã khoá đối xứng Hệ mật mã có vấn đề khó khăn sau: - Phân phối khoá - Không thể gửi mã cho người bạn khả gửi cho họ khoá bí mật Hệ mật mã khoá công khai 3.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à tận ngày nghiên cứu: A (người gửi) B (người nhận) chọn khoá k bí mật Sau A B dùng khoá k, luật mã hoá ek luật giải mã dk để chuyển đổi tin rõ M thành tin mã C Trong dk giống ek dễ dàng nhận từ e k (ví dụ hệ mật DES có trình giải mã hoàn toàn tương tự trình mã hoá thủ tục khoá ngược lại) Các hệ mật gọi hệ mật mã khoá bí mật Một nhược điểm hệ mật loại A B phải có kênh an toàn để trao đổi thông tin trước khoá, trước gửi tin Hơn để bảo đảm tính mật phân phối khoá cho A B (trong khoá dùng lần, không trùng lặp khoá) cồng kềnh Hơn kênh truyền riêng để phân phối khoá bí mật dẫn đến tốn mặt kinh tế tổ chức kênh truyền (đặc biệt tốn A B xa) Chính mà ý tưởng xây dựng hệ mật mà khoá mã công khai (khoá công khai người quản lý chung Server quản lý khoá công cộng) Như A gửi tin cho B A không cần thông tin trước khoá mà A việc lấy khoá công khai B dùng luật mã hoá ek mã hoá tin gửi cho B Để giải mã B dùng luật giải mã dk khoá bí mật riêng giải mã tin Đây ý tưởng xây dựng 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 khắc phục cồng kềnh phân phối khoá 3.2 Hệ mật mã khoá công khai Ý tưởng hệ mật mã khoá công khai Difie Hellman đưa vào năm 1976 hệ mật mã bất đối xứng Hay nói cách khác hệ 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 tương phản với mã hoá quy ước có tính chất đối xứng sử dụng khoá Việc sử dụng hai khoá có tầm quan trọng sâu sắc lĩnh vực cần tính bí mật phân bố khoá chứng thực Sự phát triển mật mã khoá công khai đóng vai trò lớn tạo cách mạng toàn lịch sử mật mã Trong giải thuật khoá công khai dựa hàm toán học phép thay chuyển vị hệ mật mã cổ điển Quan trọng 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 cố gắng để giải hai vấn đề khó khăn mã hoá quy ước phân bố khoá chữ ký số: + Trong mã hoá quy ước phân bố khoá yêu cầu hai nhiều người truyền thông (share) tham gia khoá mà cách phân bố tới họ sử dụng trung tâm phân bố khoá + Nếu mật mã chở nên phổ biến (không Quân đội, Công an, Đảng mà dùng thương mại.v.v ) tin tài liệu điện tử cần chữ ký tương đương mà sử dụng tài liệu giấy Tức phương pháp nghĩ có quy định làm hài lòng tất user tham gia mã đoạn tin số gửi cá nhân đặc biệt hay không? Trong sơ đồ mã hoá quy ước, khoá dùng cho mã hoá giải mã đoạn tin giống Thay điều phát triển giải thuật mã hoá dựa khoá cho mã hoá, khoá khác (có liên quan tới khoá trên) cho giải mã Hơn giải thuật có đặc điểm quan trọng sau: + Việc tính toán cách không khả thi để xác định khoá giải mã biết giải thuật mật mã khoá mã hoá (khoá công khai) + Trong RSA (sẽ nói chương sau) có đặc điểm hai khoá quan hệ sử dụng cho mã hoá khoá dùng cho giải mã Các bước tiến hành trình mã hoá công khai: + Mỗi user tạo cặp khoá để dùng cho mã hoá giải mã tin mà nhận + Mỗi hệ thống công bố rộng rãi khoá mã hoá cách đặt khoá vào ghi hay file công khai Đây khoá công khai, khoá lại giữ riêng bí mật + A muốn gửi tin cho B A mã hoá tin khoá công khai B gửi cho B + Khi B nhận tin mã hoá, B giải mã khoá bí mật Không người giải mã mã có B có khoá bí mật Ta có sơ đồ mã hoá giải mã sau: Giải thuật mã hóa Giải thuật giải mã USER A USER B Hình 1.3: Sơ đồ mã hoá giải mã Với cách tiếp cận trên, tất người tham gia truy xuất khoá công khai Khoá bí mật tạo cá nhân không phân bố Ở thời điểm nào, hệ thống chuyển đổi cặp khoá để đảm bảo tính bí mật Bảng tóm tắt số khía cạnh quan trọng mã hoá quy ước mã hoá công khai: để phân biệt hai loại, tổng quát hoá liên hệ khoá sử dụng mã hoá công khai khoá công khai khoá bí mật • Bảng tóm tắt: Mã hoá quy ước Mã hoá công khai *Yêu cầu: *Yêu cầu: Giải thuật tương tự cho mã hoá Một giải thuật cho mã hoá và giải mã giải thuật cho giải mã Người gửi người nhận phải Người gửi người nhận người tham gia giải thuật phải có cặp khoá riêng cho khoá *Tính bảo mật: Khoá phải giữ bí mật *Tính bảo mật: Một hai khoá phải giữ bí mật Không thể hay Không thể hay tính tính thực tế để giải mã mã thực tế để giải mã đoạn tin thông thông tin “khác” tin “khác” sẵn sẵn Kiến thức giải thuật cộng với Kiến thức giải thuật cộng với khoá, cộng với mẫu mẫu mật mã không đủ để mật mã không đủ để xác định khoá xác định khoá Tùy thuộc vào cách sử dụng có mô hình khác Trong mô hình đảm bảo tin cậy (Confidentially), người nhận B phát sinh cặp khoá: khoá công khai KUb khoá cá nhân KRb Khoá công khai KUb công bố cho tất người, khoá cá nhân KRb có người B biết Khi người gửi A muốn gửi tin cho người nhận B, dùng khoá công khai người nhận B để mã hoá Chỉ có người nhận B sử dụng khoá cá nhân KRb giải mã tin Với tin X khoá KUb đầu vào, người gửi A dùng thuật toán mã hoá E để tạo 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 tin X: X=DKRb(Y) Mô hình hệ mật mã khoá công khai dùng để bảo đảm độ tin cậy minh hoạ hình 1.4 Thám mã Nơi gửi Nơi nhận X Người gửi A Mã hoá Y Người nhận B Giải mã KRb Nguồn khoá B KUb 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 (Authentication), A chuẩn bị gửi tin cho B, dùng khoá cá nhân KRa để mã hoá B giải mã dùng khoá công khai A KUa Chỉ có A tạo mã, sử dụng làm chữ ký số Với tin X khoá KRa đầu vào, người gửi A dùng thuật toán mã hoá E để tạo mã Y=[Y1,Y2,…,YN]: Y=EKRa(X) Người nhận B dùng thuật toán giải mã D để tạo lại tin X X=DKUa(X) Thám mã Nơi gửimã khoá công khai để bảo đảm tính xác Nơi Mô hình hệ mật thựcnhận minh hoạ hình 1.5 Người gửi A X Y Mã hoá X Người nhận B Giải mã KRa Nguồn khóa A KUa Hình 1.5: Hệ mật mã khoá công khai bảo đảm tính xác thực Tính H = SHA-1 (seedE), cho c0 biểu thị chuỗi bit có chiều dài v bit thu cách lấy v bit bên phải H Cho w0 biểu thị chuỗi bit có chiều dài v bit thu cách thiết lập bit tận bên trái c0 đến (Điều đảm bảo r < p) Cho Z số nguyên nhị phân mở rộng đưa độ dài g bit seedE Cho i từ đến s ta có: 5.1 Cho si thiết lập độ dài chỗi g-bit phần mở rộng nhị phân số nguyên (z+i)mod 2g 5.2 Tính Wi = SHA-1(si) Cho W chuỗi bit thu cách nối W0, W1,….Ws sau: Cho r số nguyên mà nhị phân mở rộng cho W Nếu r = 4r + 27 = (mod p) quay lại bước Chọn tuỳ ý số nguyên a,b Є ≠ cho.(ví dụ, lấy a=r b=r) 10 Đường cong eliptic cho phương trình E: 11 Đầu (seedE, a, b) Lớp đẳng cấu đường cong eliptic đường cong elliptic E1 :y2=x3+a1x+b1 E2:y2=x3+a2x+b2 xác định đẳng cấu có tồn uЄ ,u ≠0 cho a1 =u4a2 b1=u6a2 (Các đường cong đắng cấu thường giống Cụ thể, E đẳng cấu với E2 nhóm E1()và E2() đẳng cấu theo nhóm giao hoán Theo E1 E2 đẳng cấu b1≠0 (vì b2≠0) Những đơn đường cong E:y 2=x3+ax+b mà 4a3+27b2≡0(mod p) xác đường cong có a=0 b=0 Nếu có xác lớp đẳng cấu đường cong E: y 2=x3+ax+bvới Do ,có lựa chọn cho (a,b) bước Algorithm Những điều kiện đặt bước đảm bảo cho việc loại trừ đường cong elliptic riêng lẻ Cuối cùng, tác giả muốn nói phương pháp tạo đừơng cong không tạo đường cong elliptic với a=0, b#0 a#0,b=0 Đây điều không đáng ngại đường cong tạo thành phần không đáng kể tất đường cong elliptic có lẽ không tạo thành phương pháp mà chọn đường cong elliptic cách ngẫu nhiên Sự phát triển đường cong elliptic Đường cong không đẳng cấu E1: y2=x3+ax+b E2: x3+ac2x2+bc3, với c Є dư bậc không modulo p cho xoắn với Lưu ý đường cong có giá trị r Trật tự chúng liên quan đến phương trình # E1()+# E2(.)=2p+2 Do đó, tính toán # E1() dễ dàng suy +# E2() Thuật toán 2: Xác minh đường cong elliptic tạo ngẫu nhiên Input:Một kích thước trường p (một số nguyên tố), chuỗi bit seedE độ dài bit, trường phần tử với định nghĩa đường cong elliptic E: Output: Chấp nhận từ chối E tạo cách ngẫu nhiên cách sử dụng thuật toán 1 Tính H = SHA-1 (seedE), cho c0 biểu thị chuỗi bit có chiều dài v bit thu cách lấy v bit bên phải H Cho w0 biểu thị chuỗi bit có chiều dài v bit thu cách thiết lập bit tận bên trái c0 đến Cho z số nguyên nhị phân mở rộng đưa độ dài g bit seedE Cho i từ đến s ta có: 4.1 Để si chuỗi g-bit mở rộng nhị phân (Z + i) mod 2g 4.2 Tính Wi = SHA-1 (si) Cho W chuỗi bit bao gồm chuỗi liên tiếp W 0, W1, ,Ws sau: Cho r' số nguyên nhị phân mở rộng tạo W' Nếu r' b2 ≡ a3 (mod p) chấp nhận, không từ chối Trường hợp q = 2m Theo ký hiệu sử dụng: Thuật toán 3: Tạo đường cong elliptic ngẫu nhiên INPUT: kích thước trường q = 2m OUTPUT: Một chuỗi bit seedE có độ dài 160 bit phần tử trường xác định đường cong elliptic E Chọn chuỗi bit tùy ý seeE có chiều dài g ≥ 160 bit Tính H = SHA-1 (seedE), bo biểu thị chuỗi bit dài v bit thu cách dùng v bit bên phải H Z số nguyên nhị phân mở rộng đưa seedE chuỗi g-bit Cho i chạy từ đến s ta có: 4.1 Cho si chuỗi g-bit mà có phần mở rộng nhị phân số nguyên (z + i) mod 2g 4.2 Tính bi = SHA-1(si) Cho b phần tử trường thu cách nối bo, b1, , bs sau: b = b0 | | b1 | | | | bs Nếu b = quay lại bước Cho a phần tử tùy ý Đường cong elliptic lựa chọn E: y + xy = x + ax2 + b Output (seedE, a, b) Các nhóm đẳng cấu đường cong elip Hai đường cong elliptic E1: y2 + xy = x3 + a1x2+ b1 E2: y2 + xy = x3 + a2x2 + b2 quy định đẳng cấu b1= b2 Tr(a1) = Tr(a2), Tr hàm kiểm tra Tr: xác định (Các đẳng cấu đường cong elliptic giống Trong vấn đề riêng biệt, E1 đẳng cấu với E2, sau nhóm E1() E2() đẳng cấu nhóm giao hoán sau tập hợp đại diện lớp đẳng cấu đường cong elliptic {y2 + xy = x3 + ax2+ b | , b ≠ 0, | {0, γ }}, γ phần tử cố định với Tr (γ) = (nếu m số lẻ, lấy γ = 1) Do đó, phải lựa chọn b, có lựa chọn cho a bước thuật toán Sự phát triển đường cong elliptic Các đường cong elliptic không đẳng cấu E1: y2 + xy = x3 + a2x + b2, Tr(a1) # Tr(a2) cho độ xoắn đường cong khác Các bậc có liên quan với phương trình # E1() + #E2() = 2m +1 + Vì vậy, để tính toán # E1(), người ta dễ dàng suy # E2() Bậc đường elliptic luôn Hơn nữa, # E1() ≡ (mod 4) Tr(a1) = 0, # E1() ≡ (mod4 ) Tr(a1) = Thuật toán 4: Xác minh đường cong elliptic tạo ngẫu nhiên Input: kích thước trường q = 2m, chuỗi bit seedE chiều dài g ≥ 160 bit, trường hệ số xác định đường cong elliptic E: y2 + xy = x2 + ax2 + b Output: chấp nhận từ chối E ngẫu nhiên tạo cách sử dụng thuật toán 1.Tính H = SHA-1 (seedE), bo biểu thị chuỗi bit bit v, chiều dài thu cách v bit bên phải H Cho z số nguyên nhị phân mở rộng đưa seedE chuỗi g-bit Cho i từ đến s: 3.1.Để si chuỗi g-bit có mở rộng nhị phân số nguyên (z + i) mod 2g 3.2 Tính bi = SHA - (si) Để b' phần tử trường thực thu cách nối b0,b1, , bs vào sau: b = b0 | | b1 | | | | bs Nếu b = b ' chấp nhận, không từ chối 3.3 Sinh miền tham số Sau cách để tạo miền tham số bảo mật: Chọn hệ số a b từ nhận cách ngẫu nhiên cách sử dụng thuật toán thuật toán Cho E đường cong trường hợp q = p, trường hợp q = 2m Tính N = # E() 3.Xác minh N có chia hết cho nguyên tố lớn n (n > 2160 N > 4√q) Nếu không, quay lại bước Xác minh n không chia qk -1 cho k, 1≤ k ≤20 Nếu không, quay lại bước Xác minh n # q Nếu không, quay lại bước Chọn điểm tùy ý thiết lập G = (N/n)Gt Lặp lại G # O Tính điểm Năm 1985 Schoof [91] trình bày thuật toán đa thức thời gian cho máy tính # E(), số điểm đường cong elliptic trường hợp q lẻ, thuật toán sau mở rộng cho trường hợp q = 2m Koblitz[50] Thuật toán Schoof hiệu thực tiễn cho giá trị q lợi ích thực tế (ví dụ q> 2160) Trong vài năm qua nhiều công việc thực cách cải thiện tinh chỉnh nhờ thuật toán Schoof, gọi thuật toán Schoof-Elkies Atkin (SEA), ví dụ, xem Lercier Morain [58] Lercier [56] Với cải tiến, mã hóa đường cong elliptic phù hợp lĩnh vực có đơn yêu cầu lớn 2200, tạo ngẫu nhiên vài máy trạm (xem Lercier [57] Izuet al [44].) Gần hơn, Satoh [87,26] trình bày thuật toán cho điểm kể lĩnh vực nhị phân, cấp cho thuật toán SEA Với thuật toán Satoh, số lượng điểm đường cong ellipstic cho m ≈ 200 xác định vài giây nhanh PC Phương pháp phép nhân phức (CM) Một phương pháp để tạo mã hóa phù hợp với đường cong elliptic phương pháp CM Trên phương pháp CM gọi AtkinMorain phương pháp [68], gọi phương pháp Lay-Zimmer [55] Mô tả chi tiết phương pháp CM tìm thấy IEEE 1363-2000 [39] Coi E đường cong elliptic trên miền N Cho Z = 4q - (q +1- N)2 viết Z = DV2 D số nguyên squarefree(bình phương tự do) Sau đó, E cho có phép nhân phức tạp D Nếu biết D cho đường cong, hiệu tính toán thứ tự đường cong Phương pháp CM tìm thấy D có tồn đường cong elliptic E với phép nhân phức tạp D có trật tự gần nguyên tố N = nh (trong n số nguyên tố), n ≠ q n không chia q k - cho ≤ k ≤ 20 Sau xây dựng hệ số E Phương pháp CM có hiệu cho D, trường hợp nhanh nhiều so với thuật toán Schoof Vì vậy, mặt hạn chế khả phương pháp CM sử dụng để tạo đường cong elliptic có phép nhân phức cách làm nhỏ D Đường cong Koblitz Những đường cong gọi đường cong nhị phân bất thường, lần đề nghị sử dụng mã hóa Koblitz [51] Chúng đường cong elliptic , có phương trình xác định hệ số F2 Vì Có đường cong elliptic F2m: y2 + xy = x3 +1 y2 + xy = x3 + x2 + Solinas [100102], xây dựng công trình trước Meier Staffelbach [62], cho thấy làm người ta tính toán kP hiệu cho k tùy ý P điểm đường cong Koblitz Kể từ thực phép nhân vô hướng bước tính toán thống trị hệ xác minh chữ ký ECDSA (xem § 7), đường cong Koblitz hấp dẫn để sử dụng ECDSA 3.4 Xác định miền tham số Tham số xác nhận miền bảo đảm tham số miền có thuộc tính số học cần thiết Lý để thực tham số xác nhận miền thực tế bao gồm: (i) phòng việc chèn mã độc hại tham số miền không hợp lệ mà cho phép số công; (ii) phát mã hóa vô thức lỗi truyền Sử dụng tham số miền không hợp lệ làm hiệu lực tất giá trị lưu trữ mong đợi Một ví dụ vật cụ thể (mặc dù xa vời) công (attack) chứng minh Blake-Wilson Menezes bị đưa tham số xác nhận miền hệ thống ký không thực Phương pháp xác định thông số miền: Đảm bảo D=(q, FR, a, b, G, n, h) miền tham số EC có giá trị cung cấp cho thực thể cách sử dụng phương pháp sau đây: Thực rõ ràng tham số xác nhận miền cách sử dụng thuật toán (hiển thị bên dưới) Một D đưa cách sử dụng hệt thống đáng tin cậy Nhận đảm bảo từ phần đáng tin cậy phía T (ví dụ thành phần chứng nhận) T thực rõ ràng tham số xác nhận miền D cách sủ dụng thuật toán Nhận đảm bảo từ phần đáng tin cậy T D tạo cách sử dụng hệ thống cũ Thuật toán 5: Xác nhận rõ ràng miền tham số EC Input: Thiết lập miền tham số D EC D = (q,FR,a,b,n,h) Output: chấp nhận từ chối tính hợp lệ D Xác nhận q nguyên tố lẻ lũy thừa (q=2m) Xác nhận FR đại diện hợp lệ cho Xác nhận G # O Xác nhận a, b, xG yG đại diện thực nguyên tố (ví dụ, số nguyên khoảng [0, p-1] trường hợp q = p, chuỗi bit dài m bits trường hợp q=2m (Tùy chọn) Nếu đường cong elliptic tạo ngẫu nhiên phù hợp với thuật toán thuật toán phần 5.2, xác nhận seedE chuối dài bit gồm 160 bít sử dụng thuật toán thuật toán để xác nhận a b phù hợp với seedE Xác nhận a b xác định đường cong elliptic (VD: 4a + 27 # (mod p) if q = p; b # q = 2m ) Xác nhận G nằm đường cong ellip a b (VD, y G2 = xG3 + axG + b trường hợp q = p, yG2 + xGyG = xG3 + axG2 + b trường hợp q = 2m) Xác minh n số nguyên tố Xác minh n > 2160 n > 4√q 10 Xác minh nG = O 11 Tính h’= [(√q + 1)2/n] xác minh h = h’ 12 Xác minh n không chia qk - cho k, 1≤ k ≤ 20 13 Xác minh n # q 14 Nếu nhận thấy sai sót nào, D không phù hợp, không D phù hợp Kiểm tra thứ tự đường cong elliptic Nhắc lại thuyết Hasses, (√q - 1)2 - (√q - 1)2 ≤ #E() ≤(√q + 1)2 Do n> ngụ ý n2 không chia # E () E () có nhóm thứ tự n Ngoài ra, từ (√q + 1)2 - (√q - 1)2 = 4√q, số nguyên h q + - 2√q ≤ nh ≤ q + + 2√q, cụ thể h = [(√q + 1)2/n] Như bước 9, 10 11 thuật toán xác minh #E() thực nh Như lưu ý phần 5.2, tính số lượng điểm đường cong ellip ngẫu nhiên tạo việc phức tạp nặng nề Trong thực tế, người ta mua phần mềm từ nhà cung cấp để thực đếm điểm Chúng ta lưu ý từ lệnh viện đường cong elliptic có hiệu xác minh cách chắn 100%, phần mềm không tin cậy Cặp khóa ECDSA Một cặp khóa ECDSA liên kết với tập hợp tham số miền EC Khóa công khai nhiều lựa chọn ngẫu nhiên điểm sở, khóa riêng số nguyên sinh nhiều 6.1 tóm tắt thủ tục sinh cho hệ cặp khóa 6.2 trình bày thủ tục để xác minh khóa công khai đáp ứng tất yêu cầu 6.3 thảo luận tầm quan trọng chứng minh sở hữu khóa riêng tương ứng với khóa công khai Certification Authority (CA) khóa công khai có xác nhận CA 4.1 Sinh cặp khóa Một cặp khoá thực thể A liên quan với tập hợp tham số miền EC D = (q, FR,a,b,G,n,h) Liên kết đảm bảo mật mã (e.g với chứng nhận) nội dung (e.g tất thực thể sử dụng tham số miền) Mỗi thực thể A phải đảm bảo cho tham số miền giá trị (xem phần 5.4) trước sinh khóa Sinh cặp khóa ECDSA Mỗi thực thể làm sau: Chọn ngẫu nhiên giả ngẫu nhiên số nguyên d khoảng [1, n-1] Tính Q = dG A Có khóa công khai Q; A có khóa riêng d 4.2 Xác nhận khóa công khai Xác nhận khóa công khai, đề xuất lần Johnson [46], đảm bảo khóa công khai có tính chất số học cần thiết Thực nghiệm thành công cho thấy khóa riêng có liên quan tồn cách hợp lý, không chứng minh thực có khóa riêng chủ sở hữu tuyên bố thực sở hữu khóa riêng Lý để thực xác nhận khóa công khai quan trọng thực tế bao gồm:(i) phòng ngừa chèn mã độc hại khóa công khai không hợp lệ mà cho phép số công, (ii) phát mã hóa lỗi vô ý truyền Sử dụng khóa công khai không hợp lệ hủy bỏ tất tài sản bảo đảm dự kiến Một ví dụ công cụ thể đưa xác nhận công chúng không thực chứng minh Lim Lee [60] Tấn công Diffie-Hellman ¬ giao thức dựa thỏa thuận quan trọng Phương thức sinh khóa công khai: Bảo đảm khóa công khai Q hợp lệ cung cấp cho thực thể A cách sử dụng phương pháp sau đây: Một thực khóa công khai A xác nhận rõ ràng cách sử dụng thuật toán (hình đây) A tạo Q sử dụng hệ thống đáng tin cậy A nhận bảo đảm từ bên đáng tin cậy T (e.g chứng thực chữ ký số) T biểu diễn tường minh việc xác nhận khóa công khai A sử dụng thuật toán A nhận bảo đảm từ bên đáng tin cậy T mà Q tạo sử dụng hệ thống Algorithm 6: Xác nhận tường minh khóa công khai ECDSA Input: Một khóa công khai Q =(xQ, yQ ) liên kết với tham số miền giá trị (q, FR, a,b,G,m,h) Output: Chấp nhận từ chối giá trị Q Đầu tiên kiểm tra Q#O Kiêm tra xQ, yQ đại diện cho phần tử (i.e , số nguyên khoảng [0, p-1] lựa chọn q=p sâu bit có độ dài m bit lựa chọn q=2m) Kiểm tra Q có nằm đường cong elliptic điểm a b Kiểm tra nQ =O Nếu kiểm tra lỗi, Q không hợp lệ; không Q có giá trị 4.3 Bằng chứng sở hữu khóa riêng Nếu thực thể C xác nhận A khóa công khai Q riêng sau C cho tin nhắn chữ ký có nguồn gốc từ C Để tránh điều này, CA nên yêu cầu tất thực thể A để chứng minh sở hữu khóa riêng tương ứng với khóa công khai trước CA xác nhận khóa công khai thuộc đến A Điều chứng minh sở hữu thực nhiều phương tiện khác nhau, ví dụ cách yêu cầu A ký thông điệp lựa chọn CA cách sử dụng kỹ thuật kiến thức không (xem Chaum, Evertse van de Graaf [19]) Lưu ý chứng sở hữu khóa riêng cung cấp bảo đảm khác từ xác nhận khóa công khai Trước chứng minh sở hữu khóa riêng, tương ứng với khoá công cộng không hợp lệ, sau chứng minh tính hợp lệ khóa công khai quyền sở hữu khóa riêng tương ứng Cả hai cung cấp mức độ cao đảm bảo Sinh xác nhận chữ ký ECDSA Phần mô tả thủ tục để tạo xác minh chữ ký sử dụng ECDSA Sinh chữ ký ECDSA: Để ký hiệu thông điệp m, thực thể A với vùng tham số D = (q, FR,a,b,G,n,h) cặp khóa liên kết (d,Q) ta tính sau: Chọn ngẫu nhiên giả ngẫu nhiên số nguyên Tính kG = (x1,y1) chuyển đổi x1 từ số nguyên thành Tính r = x1 mod n Nếu r = quay lại bước Tính k-1 mod n Tính SHA-1(m) chuyển đổi chuỗi bit sang số nguyên e Tính s = k-1(e + dr) mod n Nếu s = quay lại bước Chữ ký thông điệp m (r,s) Xác nhận chữ ký ECDSA: Để xác minh chữ ký A (r,s) m B có xác thực A vùng tham số D = (q, FR,a,b,G,n,h) liên kết khóa công khai Q Đó khuyến cáo B có xác nhận giá trị D Q (xem 5.4 6.2) B thực sau: Xác minh r s số nguyên khoảng [1,n-1] Tính SHA-1(m) chuyển đổi chuỗi bit sang số nguyên e Tính w =s -1 mod n Tính u1 = ew mod n u2 = rw mod n Tính X = u1G + u2Q Nếu X= , từ chối chữ ký Ngược lại, chuyển đổi x – ngang x1 X từ số nguyên , tính Thừa nhận chữ ký v = r Bằng chứng xác thực làm việc chữ ký số Nếu mốt chữ ký a (r, s) thông điệp m tạo A, s = k-1(e + dr) mod n xếp cho: Như vậy, u1G + u2Q = (u1 + u2d)G = kG v = r cần thiết Chuyển đổi loại liệu ANSI X9.62 xác định phương pháp để chuyển đổi trường phần tử phải số nguyên Nó sử dụng để chuyển đổi trường phần tử x1 từ số nguyên bước cuả phần tạo chữ ký bước phần xác nhận chữ ký trước tính toán x1 mod n ANSI X9.62 xác định phương thức chuyển đổi chuỗi bit sang số nguyên Nó sử dụng chuyển đổi đầu e SHA-1 sang số nguyên trước sử dụng tính toán modulo bước phần tạo chữ ký bước phần xác nhận chữ ký Chứng nhận khóa công khai: Trước xác minh chữ ký A thông điệp, B cần có A vùng tham số D liên quan đến khóa công khai Q ANSI X9.62 không thị chế để đạt điều Trong thực tế, xác thực khóa công khai thường phân phối thông qua giấy chứng nhận Chứng nhận khóa công khai bao gồm chuỗi thông tin xác định A (ví dụ A tên địa chỉ), miền tham số D (Nếu biến đến từ nội dung), khóa công khai Q quan xác nhận chữ ký (CA) thông tin B sử dụng xác thực khóa công khai CA để xác minh A xác nhận, có xác thực khóa công khai tĩnh A Cơ sở cho kiểm tra r s xác minh chữ ký: Bước việc kiểm tra xác nhận chữ ký r s phải sô nguyên khoảng [1, n-1] Những kiểm tra thực hiệu quả, biện pháp thận trọng điều kiện ánh sáng công biết đến đề án liên quan đến chữ ký ElGamal không thực kiểm tra (ví dụ công vậy, xem Bleichenbacher [12]) Sau hợp lý công ECDSA kiểm tra r ≠ (và nói chung, thực Giả sử A sử dụng đường cong elliptic bậc , b dư bậc hai modulo p giả sử A sử dụng điểm sở ) số nguyên tố bậc n (Đó hợp lý mà tất thực thể lựa chọn điểm sở tọa độ x để giảm thiểu bậc kích thước thông số miền) Một nhược điểm giả mạo chữ ký A thông điệp m lựa chọn tính toán A = SHA-1(m) Nó dễ dàng kiểm tra tất (r=0, s=e) chữ ký hợp lệ từ m So sánh DSA ECDSA Khái niệm, ECDSA đơn giản thu từ DSA cách thay phân nhóm theo thứ tự (bậc) q sinh bới q với phân nhóm điểm đường cong elliptic sinh G Sự khác biệt đáng kể ECDSA DSA sinh r DSA thực điều cách tham gia phần tử ngẫu nhiên việc giảm modulo q, đạt số nguyên khoảng [1 , q1] ECDSA tạo r khoảng [1, n-1] thực điều tọa độ x lựa chọn ngẫy nhiêu điểm kG việc giảm modulo n Đánh giá chuẩn chữ ký số ECDSA Các hệ mã hoá đường cong elliptic phát minh năm 1985 Neal Kobliz Victor Miller Tuy nhiên sơ đồ chữ ký ECDSA Scott Vanstone đưa năm 1992, chấp nhận chuẩn ISO vào năm 1998, chuẩn ANSI vào năm 1999, chuẩn IEEE vào năm 2000 Độ an toàn sơ đồ ký ECDSA dựa toán logarit rời rạc đường cong elliptic Cho đến độ an toàn hệ mã hoá đường cong elliptic an toàn hiệu Đối với toán logarit rời rạc đường cong elliptic có nhiều thuật toán giải Tuy nhiên chưa có thuật toán có độ phức tạp tính toán thời gian đa thức Thuật toán giải toán logarit rời rạc đường cong elliptic tốt thuật toán Pollard’s Rho, phiên thiết kế theo hướng tính toán song song Theo với nhóm đường cong elliptic cấp n có r máy tính tính toán phải /2.r phép toán Mặt khác người ta phân tích với hệ mã hoá dựa toán logarit rời rạc đường cong elliptic có độ bảo mật với hệ mã hoá dựa toán phân tích số nguyên thành thừa số nguyên tố (như RSA) độ dài khoá hệ mã hoá dựa đường cong elliptic có chiều dài khoá ngắn nhiều Chẳng hạn với hệ mã hoá RSA có chiều dài khoá 1024 bit hệ mã hoá đường cong elliptic cần độ dài khoá 163 bit có độ bảo mật tương đương Và việc tính toán tiến trình hệ mã hoá đường cong elliptic nhanh nhiều Chương IV Xây dựng chương trình Ý tưởng xây dựng chương trình Xây dựng giao diện người dùng người dùng sử dụng chữ ký số cách thuận tiện Người gửi dùng phần mềm để chọn văn cần ký, bấm vào nút ký để ký (sử dụng khóa bí mật chương trình sinh ra) Sau gửi văn ký với khóa công khai Người nhận nhận văn dùng phần mềm để kiểm tra chữ ký có người gửi không, có toàn vẹn hay ko Xây dựng chương trình 2.1 Thông số thuật toán Chương trình sử dụng EC kiểm chứng độ bảo mật an toàn trình sử dụng Đó EC : có thông số sau p=6277101735386680763835789423207666416083908700390324961279 a=-3 b=0x64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1 Gx=0x 188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012 Gy=0x 07192B95FFC8DA78631011ED6B24CDD573F977A11E794811 n=6277101735386680763835789423176059013767194773182842284081 Các thuật toán sinh cặp khóa, sinh xác nhận chữ ký trình bày chương III Thuật toán hàm băm SHA-1 tạo tóm tắt cho văn gửi Người nhận dùng hàm băm để kiểm tra xem văn gửi có toàn vẹn không 2.2 Giao diện chương trình Kết luận Công nghệ thông tin lĩnh vực đem lại nhiều lợi ích cho xã hội, thiếu kinh tế hội nhập toàn cầu hoá An toàn bảo mật thông tin yếu tố quan trọng cho nhiều ứng dụng thực tiễn Trong quát trình nghiên cứu giải pháp bảo mật ngƣời ta phát minh hệ mã hoá công khai dựa đường cong elliptic Cho đến hệ mã hóa đường cong elliptic xem hệ mã hoá an toàn hiệu So với hệ mã hoá công khai khác, ECDSA xem ưu việt độ bảo mật độ dài khoá ECDSA nhỏ nhiều so với hệ mã hoá khác Điều dẫn tới hệ mã hoá ECDSA có khả thực thi nhanh hơn, hiệu hệ mã hóa công khai khác Đây coi báo cáo thực tập, báo cáo tốt nghiệp lần đầu Em mong thầy giáo vấn đề em hiểu chưa đúng, vấn đề cần tìm hiểu mà em chưa đề cập đến để em hoàn thiện tập làm demo chữ ký số Em xin cám ơn thầy [...]... lược đồ chữ ký số 1.3 Lược đồ chữ ký số cùng phụ lục Lược đồ chữ ký số có phần phụ lục, như đã trình bày ở trên, được sử dụng phổ biến trong thực tế Chúng dựa trên các hàm hash mật mã hơn là trên các hàm phần dư, và ít bị nguy hiểm hơn đối với các tấn công existenial forgery Định nghĩa: Các lược đồ chữ ký số mà yêu cầu bản rõ là đầu vào của thuật toán kiểm tra ký được gọi là lược đồ chữ ký số có phần... thuật kiểm tra ký VA của A được xác định bởi khoá lA được đưa ra công khai - Các chữ ký viết tay được coi như một lớp đặc biệt của các chữ ký số Trường hợp này, tập các chữ ký S chỉ bao gồm một phần tử đó là chữ ký viết tay của A, gọi là sA Hàm kiểm tra chữ ký đơn giản kiểm tra xem chữ ký trên thông điệp được ký một cách có chủ ý bởi A là sA Một đặc trưng không mong muốn, đó là chữ ký viết tay không... tử gọi là tập chỉ số chữ ký (indexing set for signing) h Mh hàm một chiều trên miền M ảnh của h (tức là, h: M->Mh); Mh⊆MS được gọi là không gian giá trị băm Ký hiệu cho các kỹ thuật chữ ký số Chú ý (giải thích bảng trên) : - M (không gian bản rõ) là tập các phần tử mà từ đó một người ký có thể thêm vào chữ ký số - MS (không gian ký) là tập các phần tử mà từ đó các phép ánh xạ chữ ký (sẽ được trình... algorithm) là phương pháp để kiểm tra rằng một chữ ký số là đáng tin (tức là thực sự đã được tạo bởi thực thể đã được chỉ ra) 4 Lược đồ chữ ký số (digital signature scheme hoặc mechanism) bao gồm thuật toán sinh chữ ký và thuật toán kiểm tra chữ ký đi kèm 5 Quy trình sinh chữ ký số (digital signature signing process hoặc procedure) bao gồm một thuật toán sinh chữ ký số (toán học), đi cùng với một phương pháp... của Chính phủ quy định chi tiết thi hành Luật Giao dịch điện tử về chữ ký số và dịch vụ chứng thực chữ ký số  Thông tư số 05/2010/TT-BNVngày 01/7/2010 của Bộ Nội vụ hướng dẫn về cung cấp, quản lý và sử dụng dịch vụ chứng thực chữ ký số chuyên dùng phục vụ các cơ quan thuộc hệ thống chính trị 3 Ưu điểm của chữ ký số Việc sử dụng chữ ký số mang lại nhiều ưu điểm khi cần xác định nguồn gốc và tính toàn... ứng với một đường mũi tên từ mj tới sj trong biểu đồ SA Tính chất (ii) đảm bảo tính an toàn cho phương pháp - chữ ký ràng buộc A duy nhất với thông điệp đã được ký Chữ ký số trong thực tế Với các chữ ký số thực sự có tác dụng trong thực tế, các phương án cụ thể của các khái niệm trước đó chắc chắn phải có thêm các tính chất khác Một chữ ký số phải: 1 Dễ dàng tính toán bởi người ký (hàm ký là dễ dàng... nhiều khối đã ký có sự rủi ro an toàn, nên phương pháp được ưu tiên là sử dụng hàm băm 1.4 Lược đồ chữ ký khôi phục thông báo Các lược đồ chữ ký số trình bày trong mục này có đặc điểm đó là các thông điệp đã ký có thể được khôi phục lại từ chữ ký của nó Trong thực tế, đặc điểm này chỉ sử dụng cho các thông điệp ngắn Định nghĩa Một lược đồ chữ ký khôi phục thông báo là một lược đồ chữ ký số mà việc biết... với độ an toàn của lược đồ chữ ký, và có thể là các hàm 1-1 bất kỳ từ Mh tới MS S M m Mh h MR SA, k R h(m) ~) s* = S A, k ( m MS Hình 3.5: Lược đồ chữ ký khôi phục thông báo nhận được từ lược đồ chữ ký cùng phụ lục 2 Pháp lý của chữ ký số Một số văn bản quy phạm pháp luật do Quốc hội, Chính phủ và các Bộ thông qua và ban hành liên quan đến chữ ký số:  Luật Giao dịch điện t số 51/2005/QH11 do Quốc hội... đó là chữ ký số Mục đích của một chữ ký số là để cung cấp phương tiện cho một thực thể để gắn kết định danh của nó với một thông tin Quá trình ký gây ra sự biến đổi thông điệp và một số thông tin bí mật được giữ bởi thực thể thành một cái được gọi là chữ ký Mô tả chung của nó như sau Thuật ngữ và các ký hiệu - M là tập các thông điệp mà có thể được ký - S là một tập các phần tử gọi là các chữ ký, có... Các lược đồ chữ ký số có phần phụ lục (digital signature scheme with appendix) yêu cầu bản rõ gốc có ở đầu vào của thuật toán kiểm tra chữ ký (ii) Các lược đồ chữ ký khôi phục bản rõ (digital signature scheme with message recovery) không yêu cầu bản rõ gốc trong đầu vào cho thuật toán kiểm tra chữ ký Trong trường hợp này, bản rõ gốc tự được khôi phục lại từ chữ ký Định nghĩa: Lược đồ chữ ký (khôi phục

Ngày đăng: 06/01/2016, 09:19

Từ khóa liên quan

Mục lục

  • MỞ ĐẦU

  • Chương I: TỔNG QUAN VỀ MẬT MÃ

    • 1. Hệ mật nói chung.

    • 2. Hệ mật mã khoá đối xứng.

      • 2.1. Khái niệm cơ bản.

      • 2.2. Các thuật toán dùng trong hệ mật mã khoá đối xứng.

      • 2.3. Những vấn đề cần giải quyết trong hệ mật mã khoá đối xứng.

      • 3. Hệ mật mã khoá công khai.

        • 3.1. Ý tưởng xây dựng hệ mật mã khoá công khai:

        • 3.2. Hệ mật mã khoá công khai.

        • 3.3. Các thuật toán dùng trong hệ mật mã khoá công khai.

        • 3.4. Yêu cầu đối với hệ mật mã khoá công khai.

        • 3.5. Các ứng dụng sử dụng hệ mật mã khoá công khai.

        • 3.6. Ưu điểm của hệ mật mã khoá công khai.

        • CHƯƠNG II: TỔNG QUAN VỀ CHỮ KÝ SỐ

          • 1. Lý thuyết về chữ ký số.

            • 1.1. Mở đầu.

            • 1.2. Các định nghĩa và phân loại.

            • 1.3. Lược đồ chữ ký số cùng phụ lục

            • 1.4. Lược đồ chữ ký khôi phục thông báo.

            • 2. Pháp lý của chữ ký số

            • 3. Ưu điểm của chữ ký số

              • 3.1 Khả năng xác định nguồn gốc

              • 3.2 Tính toàn vẹn

              • 3.3 Tính không thể phủ nhận

              • 4. Lợi ích khi sử dụng chữ ký số của các doanh nghiệp

Tài liệu cùng người dùng

Tài liệu liên quan