đặt vấn đề của rất nhiều đơn vị trên th ế giới là phát triển một thành phần nào đó trong bộ ứng dụng của chúng tôi. Các vấn đề về kỹ thuật công nghệ Về kỹ thuật công ngh ệ, có thể nói nền tảng ch ữ ký số trên các thiết b ị di động cũng đã được xây dựng trên các nền tảng chính: - Các nền t ảng k ỹ thuật và công nghệ để tích hợp chíp xử lý chữ ký số trên Sim của thiết bị di động. - Các nền tảng kỹ thuật và công nghệ để triển khai một thiết bị lưu trữ và xử lý chữ ký số và thực hiện kết nối vào thiết bị di động qua các kênh đầu cắm Audio, qua kênh Blutooth - Một số nền tảng sử dụng thuần thiết bị chính là Token, và ứng dụng phần mềm lưu trữ và quản lý chữ ký số được cài đạt trên các thiết bị. Về chuẩn, hiện tại các chu ẩn đố i với các thiết bị công ngh ệ là thiết bị phần cứng có thể nó nó tuân theo các chuẩn công nghiệp sẵn có của các thiết bị phần cứng và phần mềm chuẩn chữ ký số p như PKCS#11, PKCS#1, PKCS#15.
Với thiết bị mobile khi giao tiếp một số chuẩn cũng cầ n phải kiểm soát được tuân theo như chuẩn giao tiếp của thiết bị tương ứng như chuẩn Audio, chuẩ n Bluetooth. Về cơ bản các chu ẩn cũng được hiệp hội các nhà viễn thông toàn cầu họp và ch ấp nhận để tạo thành một chuẩn chung để phục v ụ trong mọi giao tiếp viễn thông trên toàn cầu. 16 download by : skknchat@gmail.com Chương 2. LÝ THUYẾT VỀ CHỮ KÝ SỐ 2.
Khái niệm Chữ ký số Giới thiệu Để chứng thực nguồn gốc hay hiệu lực của một tài liệu (ví dụ: đơn xin học, giấ y báo nhập học,. ), lâu nay người ta dùng chữ ký “tay”, ghi vào phía dưới của mỗi tài liệu. Như vậy người ký phải trực tiếp “ký tay“ vào tài liệu. Ngày nay các tài liệu được số hóa, người ta cũng có nhu cầu chứ ng thực nguồn gốc hay hiệu lực của các tài liệu này.
Rõ ràng không thể “ký tay“ vào tài liệu, vì chúng không được in ấn trên giấy. Tài liệu “số” ( hay tài liệu “điện tử”) là một xâu các bit (0 hay 1), xâu bít có thể rất dài (nếu in trên giấy có thể hàng nghìn trang). “Chữ ký” để chứng thực một xâu bít tài li ệu cũng không thể là một xâu bit nh ỏ đặt phía dưới xâu bit tài liệu. Một “chữ ký” như vậ y chắc chắn sẽ bị kẻ gian sao chép để đặt dưới một tài liệu khác bất hợp pháp.
Để có được những đặc tính như trên, giao thức “ký trong thế giới điện tử” cần phải có sự hỗ trợ của công nghệ mã hóa. Sơ đồ chữ ký số là phương pháp ký mộ t thông báo được lưu dưới dạng điện tử. Giao thức cơ bản của chữ ký số dựa trên ý tưởng của Diffie và Hellman : - Người gửi (chủ nhân của văn bản) ký văn bản b ằng cách mã hóa nó v ới khóa bí mật của mình - Người gửi chuyển văn bản đã ký cho người nh ận - Người nhận văn bản ki ểm tra chữ ký bằng việc sử dụng chìa khóa công khai của người gửi để giải mã văn bản. Định nghĩa Chữ ký số: Chữ ký số (khóa công khai) là mô hình sử dụng các kỹ thuật mật mã để gắn với mỗi người sử dụng một cặp khóa công khai - bí mật và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật.
Khóa công khai thường được phân phối thông 17 download by : skknchat@gmail.com qua chứng thực khóa công khai. Quá trình s ử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ ký. Các thuật toán chữ ký số cho phép xác định nguồn gố c, bảo đảm tính toàn vẹn của dữ liệu được truyền đi, đồng thời nó cũng bảo đảm tính không thể phủ nhận của thực thế đã ký thông tin. Các đăc điểm của chữ ký số: - Tính bảo mật (Confidentiality) - Tính toàn vẹn (Integrity) - Tính chống chối bỏ (Non-repudiation) - Tính xác thực (Authenticity) 2.
Cơ sở toán học của chữ ký số 2. Sinh số nguyên tố và phân tích thừa s ố nguyên tố Hai hệ quả và một ước lượng trong thuyết số học là tiền đề cho hệ thống khóa công khai RSA ngày nay Hệ quả 1 : Sinh số nguyên tố thì dễ. Việc tìm ra một số nguyên tố ngẫu nhiên với kích cỡ cho trước là dễ dàng. Nó là kết quả của hai điểm khác : Số nguyên tố với kích thước bất kỳ thì rất phổ biến và việc kiểm tra số nguyên tố thì không khó – thậm chí với cả số nguyên tố rất lớn Để sinh số nguyên tố ngẫu nhiên, đơn giản nhất là ch ỉ việc sinh ra một số nguyên ngẫu nhiên với độ lớn đã cho và kiể m tra tính nguyên tố cho đến khi một số nguyên tố được tìm thấy.
Dựa vào điều kiện số nguyên tố, một số kỳ vọng được kiểm tra dựa vào thứ tự của lnx( thuật toán tự nhiên của x) khi mà x là một số điển hình v ới độ lớn mong muốn. Việc kiểm tra một số là số nguyên tố là không dễ. Trong thực tế, dường như việc kiểm tra tính nguyên t ố sẽ yêu cầu một số khác ngoài chính số đó và số 1 là ước của số nguyên cần kiểm tra. Hầu hết các hệ mã hóa khóa công khai ngày nay đề phụ thuộc vào việc sinh số nguyên tố.
18 download by : skknchat@gmail.com Cho p, và q là 2 số nguyên tố lớn được sinh ngẫu nhiên. Hệ quả 2 : Phép tính nhân là dễ : Với p và q cho trướ c, việc tính kết quả của phép nhân n = pxq là dễ dàng. Ước lượng 3 : Phân tích th ừa số là khó : Với một số nguyên n là kết qu ả của phép nhân số nguyên tố lớn, việc tìm lại các số nguyên t ố thừa số p, q là rất khó. Bất chấp hàng trăm năm nghiên cứu trong vấn đề này, việc phân tích ra thừa số của một số nguyên lớn v ẫn mất r ất một th ời gian dài.
Phương pháp nhanh nhất gần đây đã nhanh hơn rất nhiều so với những cách đơn giản là tìm tất cả các thừa số ở cùng một thời điể m. Tuy nhiên, chúng vẫn rất đắt. Cho ví dụ, việc phân tích ra thừa s ố nguyên tố cua một số 1024 bit mất một năm với một máy giá 10 triệu USD. Với một số 2048 bit thì th ời gian để hoàn thành còn gấ p vài tỉ lần.
Phép mũ hóa và khai căn modul Như ở trên ta đã khai báo n là kết quả của phép nhân hai số nguyên tố lớn được sinh ngẫu nhiên. Cho m và c là những số nguyên nằm trong khoảng (0,n-1) và e là một số nguyên lẻ trong kho ảng (3,n-1) và nguyên tố cùng nhau với p-1 và q-1. Thao tác mã hóa và giải mã trong hệ mã hóa khóa công khai RSA được thực hiện dựa trên 2 hệ quả và 1 ước lượng sau : Hệ quả 4: Phép tính mũ hóa modul là dễ : Cho n,m và e. Vi ệc tính c = me mod n là dễ dàng Giá trị me mod n chính thức là kết quả của nâng lũy thừ a e của m, chia cho n và lấy phần dư.
Điều này có thể là một phép tính toán phức tạp liên quan tới việc nhân (e-1) số m và k ết quả trả về là một số nguyên lớn, trước khi việc thực hiện phép chia cho n. Tuy nhiên hai cách tối ưu hóa sau làm cho việc tính toán trở nên dễ dàng : 19 download by : skknchat@gmail.com - Nhân với một trình tự thích hợp của các giá tr ị trung gian trước đó, thay vì hơn chỉ bằng m, có thể giảm số lượng các phép nhân để không quá hai lần kích thước của e trong hệ nhị phân - Chia và lấ y phần dư sau khi mỗi phép nhân giữ kết quả trung gian có cùng kích thước như n Hệ quả 5 : Phép khai căn module – nghịch đảo của phép lũy thừa module. Cho n,e,c và những thừa số nguyên tố p, q, việc khôi phục lại giái trị m sao cho c = me mod n là dễ dàng. Giá trị m có thể khôi phục t ừ c b ởi thao tác mũ hóa modul với một số nguyên lẻ d nằm trong khoảng (3,n-1).
Đặc biệt, với số d này, biểu thức sau thể hiện cho tất cả m : m = (me)d mod n. Số nguyên d này thì dễ dàng tính với e, p, q cho trước. Ước lượng 6: Phép khai căn modul lại khó ở một hoàn cảnh khác Cho n,e, và nhưng không biết những thừa số nguyên t ố, việc khôi phục lại m là khó khăn. Phương pháp nhanh nhất thì có sẵn trong vi ệc tính toán khai căn modul dưới điều kiện dựa là n và e là phân tích th ừa số n và áp dụng hệ quả 5 để quyết định d.
Th ực sự, bất k ỳ phương thứ c nào quyết định d đều b ị chuyển v ề một cách khác của việc phân tích thừa số n. Đúng là có thể khi mà t ồn tại một phương pháp mà tính toán khai căn modul mà không cần phân tích n hoặc quyết định d. Nhưng cho đến nay chưa phương phàp nào có thể làm như vậy nhanh hơn việc phân tích thừa số n. Hàm băm Hàm băm tiếp nhận các đầu vào với kích thước bất k ỳ, và đầu ra là một khối dữ liệu có kích thước cố định.
Từ văn bản M, ta có thể dễ dàng tính ra bản băm của M là H(M), nhưng từ H(M) không thể tìm ra M. Và một tính chất quan trọng nhất của hàm băm là với nhữ ng văn bản khác biệt nhau dù là rất nhỏ, thì sau khi qua hàm băm kết 20 download by : skknchat@gmail.com quả nhận được cũng phả i khác nhau, ta có th ể gọi là độ nhạy cảm của hàm băm với sự thay đổi của văn bả n.1 mô tả cơ chế của 1 hàm băm, với dữ liệu đầu vào và đầu ra tương ứng.