Giới thiệu ▪ Chuyển đổi một thông điệp có độ dài bất kỳ thành một dãy bit có độ dài nhất định. ▪ Hàm băm là hàm một chiều → Rất khó để xây dựng lại thông điệp ban đầu từ thông điệp rút gọn. ▪ Hàm băm giúp xác định được tính toàn vẹn dữ liệu của thông tin. ❖Hàm băm (hash function) là một hàm toán học h có tối thiểu 2 thuộc tính cơ bản: ▪ Nén (compression): h là một ánh xạ từ chuỗi đầu vào x có chiều dài bất kỳ sang một chuỗi đầu ra h(x) có chiều dài cố định n bít; ▪ Dễ tính toán (ease of computation): cho trước hàm h và đầu vào x, việc tính toán h(x) là dễ dàng.
TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN Giảng viên: ThS Dương Minh Tuấn dmtuan@ntt.edu.vn Chương VI Hàm Băm Chữ ký số HÀM BĂM - Giới thiệu hàm băm - Một số giải thuật hàm băm điển hình ▪ MD5 ▪ SHA1 Chữ ký số ▪ Thuật toán chữ ký số RSA ▪ Thuật toán chữ ký số DSA Chứng số Hạ tầng khóa cơng khai – PKI(Public Key Infrastructure) Hàm Băm Giới thiệu ▪ Chuyển đổi thơng điệp có độ dài thành dãy bit có độ dài định ▪ Hàm băm hàm chiều → Rất khó để xây dựng lại thông điệp ban đầu từ thông điệp rút gọn ▪ Hàm băm giúp xác định tính tồn vẹn liệu thông tin Hàm Băm Giới thiệu ❖Hàm băm (hash function) hàm toán học h có tối thiểu thuộc tính bản: ▪ Nén (compression): h ánh xạ từ chuỗi đầu vào x có chiều dài sang chuỗi đầu h(x) có chiều dài cố định n bít; ▪ Dễ tính tốn (ease of computation): cho trước hàm h đầu vào x, việc tính tốn h(x) dễ dàng Hàm Băm Giới thiệu ❖ Phân loại hàm băm theo khóa sử dụng: ▪ Hàm băm khơng khóa (unkeyed): đầu vào thơng điệp; ▪ Hàm băm có khóa (keyed): đầu vào gồm thơng điệp khóa Hàm Băm Giới thiệu ❖Phân loại hàm băm theo tính năng: A Mã phát sửa đổi (MDC - Modification detection codes) • MDC thường sử dụng để tạo chuỗi đại diện cho thông điệp dùng kết hợp với biện pháp khác để đảm bảo tính tồn vẹn thơng điệp; • MDC thuộc loại hàm băm khơng khóa; • MDC thường sử dụng trình tạo kiểm tra chữ ký số để đảm bảo tính tồn vẹn thơng điệp Hàm Băm Giới thiệu ❖Phân loại hàm băm theo tính năng: A Mã phát sửa đổi (MDC - Modification detection codes) • Hai loại MDC: – Hàm băm chiều (OWHF - One-way hash functions): dễ dàng tính giá trị băm, khơi phục thơng điệp từ giá trị băm khó khăn; – Hàm băm chống đụng độ (CRHF - Collision resistant hash functions): Rất khó tìm thơng điệp trùng giá trị băm Hàm Băm Giới thiệu ❖Phân loại hàm băm theo tính năng: B Mã xác thực thơng điệp (MAC - Message authentication codes) • MAC dùng để đảm bảo tính tồn vẹn thơng điệp mà khơng cần biện pháp bổ sung khác; • MAC loại hàm băm có khóa: đầu vào thơng điệp khóa; • MAC sử dụng giao thức bảo mật SSL/TLS, IPSec,… để đảm bảo tính tồn vẹn thơng điệp Hàm Băm Mơ hình lặp tổng qt tạo giá trị băm Mơ hình lặp chi tiết tạo giá trị băm Hàm Băm Cấu trúc hàm băm Các thành phần: • Thơng điệp M • Thông điệp “băm” H Các bước: • Cho trước thơng điệp M có độ dài • Chia nhỏ thơng điệp M thành khối có kích thước nhau: M1, M2, …Ms • Gọi H trạng thái có kích thước n bit, f “hàm nén” thực thao tác trộn khối liệu với trạng thái hành • Hs thông điệp rút gọn thông điệp M ban đầu Giải thuật chữ ký số DSA ❖Sinh khóa: ▪ Lựa chọn tham số: • Lựa chọn giải thuật băm chuẩn H Giải thuật băm lựa chọn SHA-1 SHA-2; • Chọn kích thước cho khóa L N – L 1024, 2048, 3072; – N 160, 224, 256 N phải nhỏ kích thước chuỗi băm đầu hàm H chọn; – Chọn số nguyên tố q N bít; – Chọn modulo p L bít cho p-1 bội số q; – Chọn g hệ số nhân cho (g*q) mod p = 1; – Các tham số (q, p g) chia sẻ người dùng ▪ Sinh khóa cho người dùng: • Chọn số ngẫu nhiên x cho < x < q; • Tính y = gx mod p; • Khóa cơng khai (q, p, g, y); • Khóa riêng x Giải thuật chữ ký số DSA ❖Ký thông điệp: ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ H hàm băm sử dụng m thơng điệp gốc; Tính H(m) từ thông điệp gốc; Tạo số ngẫu nhiên k cho thơng điệp, < k < q; Tính r = (gk mod p) mod q; Nếu r = 0, chọn k tính lại r; Tính s = k-1(H(m) + xr) mod q; Nếu s = 0, chọn k tính lại r s; Chữ ký cặp (r, s) Giải thuật chữ ký số DSA ❖Kiểm tra chữ ký thông điệp: ▪ ▪ ▪ ▪ ▪ ▪ ▪ Loại bỏ chữ ký r s không thỏa mãn < r , s < q; Tính H(m) từ thơng điệp nhận được; Tính w = s-1 mod q; Tính u1 = H(m) * w mod q; Tính u2 = r * w mod q; Tính v = ((gu1 * yu2) mod p) mod q; Chữ ký xác thực v = r Chứng số Giới thiệu ❖ Chứng số (Digital certificate), gọi chứng khóa cơng khai (Public key certificate), hay chứng nhận dạng (Identity certificate) tài liệu điện tử sử dụng chữ ký số để liên kết khóa công khai thông tin nhận dạng thực thể: ▪ Chữ ký số: chữ ký bên thứ tin cậy, thường gọi CA – Certificate Authority; ▪ Khóa cơng khai: khóa cơng khai cặp khóa cơng khai thực thể; ▪ Thơng tin nhận dạng: tên, địa chỉ, tên miền thông tin định danh thực thể ❖ Chứng số sử dụng để xác minh chủ thể thực khóa cơng khai Chứng số Nội dung Chứng số Nội dung ❖Chứng số gồm trường sau: ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ Serial Number: Số nhận dạng chứng số; Subject: Thông tin nhận dạng cá nhận tổ chức; Signature Algorithm: Giải thuật tạo chữ ký; Signature Hash Algorithm: Giải thuật tạo chuỗi băm cho tạo chữ ký; Signature: Chữ ký người/tổ chức cấp chứng chỉ; Issuer: Người/tổ chức có thẩm quyền/tin cậy cấp chứng chỉ; Valid-From: Ngày bắt đầu có hiệu lực chứng chỉ; Valid-To: Ngày hết hạn sử dụng chứng chỉ; Key-Usage: Mục địch sử dụng khóa (chữ ký số, mã hóa,…); Public Key: Khóa cơng khai chủ thể; Thumbprint Algorithm: Giải thuật hash sử dụng để tạo chuỗi băm cho khóa cơng khai; Thumbprint: Chuỗi băm tạo từ khóa cơng khai Chứng số Nội dung ❖ Nội dung trường Subject: ▪ CN (Common Name): Tên chung, tên miền gán chứng chỉ; ▪ OU (Organisation Unit): Tên phận/phòng ban; ▪ O (Organisation): Tổ chức/Cơ quan/công ty; ▪ L (Location): Địa điểm/Quận huyện; ▪ S (State/Province): Bang/Tỉnh/Thành phố; ▪ C (Country): Đất nước Chứng số Sử dụng ❖ Đảm bảo an toàn cho giao dịch web: ▪ Dùng chứng số cho phép website chạy SSL (tối thiểu máy chủ phải có chứng số): HTTP → HTTPS: tồn thông tin chuyển server client đảm bảo tính bí mật (sử dụng mã hóa khóa đối xứng), toàn vẹn xác thực (sử dụng hàm băm có khóa MAC/HMAC); ▪ Chứng số để bên xác thực thông tin nhận dạng ❖ Chứng số sử dụng cho nhiều ứng dụng: ▪ Email; ▪ FTP; ▪ Các ứng dụng Hạ tầng khóa cơng khai - PKI Hạ tầng khóa công khai (Public-key infrastructure - PKI) tập phần cứng, phần mềm, nhân lực, sách thủ tục để tạo, quản lý, phân phối, sử dụng, lưu trữ thu hồi chứng số; Một PKI gồm: ▪ Certificate Authority (CA): Cơ quan cấp kiểm tra chứng số; ▪ Registration Authority (RA): Bộ phận kiểm tra thông tin nhận dạng người dùng theo yêu cầu CA; ▪ Validation Authority (VA): Cơ quan xác nhận thông tin nhận dạng người dùng thay mặt CA; ▪ Central Directory (CD): Là nơi lưu danh mục lập số khóa; ▪ Certificate Management System: Hệ thống quản lý chứng chỉ; ▪ Certificate Policy: Chính sách chứng chỉ; Hạ tầng khóa công khai - PKI Lưu đồ cấp sử dụng Hạ tầng khóa cơng khai - PKI Cách Thức Hoạt Động Hạ tầng khóa cơng khai - PKI Ứng Dụng Của PKI Mã hoá Email xác thực người gửi Email (OpenPGP hay S/MIME) Mã hóa nhận thực văn (Các tiêu chuẩn Chữ ký XML* mã hoá XML* văn thể dạng XML) Xác thực người dùng ứng dụng (Đăng nhập thẻ thông minh smartcard, nhận thực người dùng SSL) Các giao thức truyền thông an toàn dùng kỹ thuật Bootstrapping (IKE, SSL): trao đổi khóa khóa bất đối xứng, cịn mã hóa khóa đối xứng Hạ tầng khóa cơng khai - PKI Ứng Dụng Của PKI Hệ thống quản lý chứng thực Red Hat Computer Associate eTrust PKI OpenCA RSA Simple CA TÓM TẮT CHƯƠNG Hàm băm Chữ ký số Chứng số Hạ tầng khóa cơng khai 41 Thanks ...Chương VI Hàm Băm Chữ ký số HÀM BĂM - Giới thiệu hàm băm - Một số giải thuật hàm băm điển hình ▪ MD5 ▪ SHA1 Chữ ký số ▪ Thuật toán chữ ký số RSA ▪ Thuật toán chữ ký số DSA Chứng số Hạ tầng khóa... liệu từ thông điệp Chữ ký số Chữ ký số ❖ Quá trình ký kiểm tra Chữ ký số ❖ Quá trình ký Các bước q trình ký thơng điệp (bên người gửi): ▪ Tính tốn chuỗi đại diện (message digest/hash value) thông. .. riêng ▪ Tạo chữ ký số: • Người gửi tạo chữ ký số sử dụng khóa bí mật mình; • Người nhận kiểm tra chữ ký sử dụng khóa cơng khai người gửi Giải thuật chữ ký số RSA Giải thuật chữ ký số DSA ❖ DSA