2.1.2.1 Giới thiệu
IBE (Indetity Base Encryption) [4] là một công nghệ mã hoá khoá công khai, cho phép một ngƣời sử dụng tính khoá công khai từ một chuỗi bất kỳ. Chuỗi này nhƣ là biểu diễn định danh của dạng nào đó và đƣợc sử dụng không chỉ nhƣ là một định danh để tính khoá công khai, mà còn có thể chứa thông tin về thời hạn hợp lệ của khoá để tránh cho một ngƣời sử dụng dùng mãi một khoá IBE hoặc để đảm bảo rằng ngƣời sử dụng sẽ nhận đƣợc các khoá khác nhau từ các hệ thống IBE khác nhau. Trong chuỗi này có chứa thông tin là duy nhất đối với mỗi cài đặt IBE cụ thể, chẳng hạn nhƣ URL mà định danh máy chủ đƣợc sử dụng trong cài đặt của các hệ thống IBE khác nhau. Khả năng tính đƣợc các khoá nhƣ mong muốn làm cho các hệ thống IBE có các tính chất khác với các tính chất của các hệ thống khoá công khai truyền thống, những tính chất này tạo ra các ƣu thế thực hành đáng kể trong nhiều tình huống. Bởi vậy, có một số ít tình huống không thể giải quyết bài toán bất kỳ với các công nghệ khoá công khai truyền thống, nhƣng lại có thể giải quyết đƣợc với IBE và sử dụng IBE có thể đơn giản hơn nhiều về cài đặt và ít tốn kém hơn về nguồn lực để hỗ trợ.
2.1.2.2 Các khả năng ứng dụng IBE
IBE cho phép ngƣời sử dụng giao tiếp an toàn, có thể xác minh chữ ký của nhau dễ dàng mà không cần trao đổi các mã khóa công khai hoặc cá nhân, không cần lƣu giữ bí mật các thƣ mục quan trọng, cũng nhƣ không cần sử dụng dịch vụ của bên thứ ba. Lƣợc đồ đặt giả thiết về sự tồn tại đáng tin cậy của các trung tâm tạo mã nhằm cung cấp cho mỗi ngƣời dùng một thẻ thông minh cá nhân khi lần đầu tiên tham gia hệ thống. Các thông tin nhúng trong thẻ này cho phép ngƣời dùng đăng ký và mã hóa các tin nhắn gửi đi, giải mã và xác minh các thông báo nhận đƣợc trong điều kiện hoàn toàn riêng tƣ, không lệ thuộc vào phía đối tác bên kia. Thẻ phát hành trƣớc đó không cần cập nhật khi ngƣời dùng mới tham gia mạng lƣới, bên cạnh đó, các trung tâm khác nhau cũng không nhất thiết phải các công đoạn sau đó, hay thậm chí thiết lập thêm một danh sách ngƣời dùng. Họ hoàn toàn có thể xong nhiệm vụ ngay khi tất cả các thẻ đã đƣợc phát hành, còn ngƣời sử dụng cứ tiếp tục hoạt động bình thƣờng trong phạm vi thời gian không xác định.
IBE là giải pháp lý tƣởng cho nhóm khách hàng cao cấp bí mật nhƣ giám đốc điều hành ở các công ty đa quốc gia hoặc các chi nhánh của một ngân hàng lớn.... IBE cũng duy trì tính thiết thực trên phạm vi toàn quốc với hàng trăm hệ thống tạo
42 khóa cùng với hàng triệu ngƣời dùng. Đây sẽ là một tiền đề cho sản phẩm thẻ nhận dạng tiện dụng mới mà mọi ngƣời có thể sử dụng trong việc ký séc, quẹt thẻ tín dụng, văn bản pháp luật, và thƣ điện tử.
IBE dựa trên một hệ thống mã khóa công khai.Thay vì tạo ra một cặp khóa công khai/bí mật ngẫu nhiên rồi công bố một trong hai, ngƣời dùng bây giờ chỉ cần chọn tên và địa chỉ mạng nhƣ một mã khóa công khai của mình. Hệ thống chấp nhận bất kỳ sự kết hợp sử dụng nào nhƣ tên, số an sinh xã hội, địa chỉ đƣờng phố, số văn phòng hoặc số điện thoại (tùy thuộc vào ngữ cảnh) với điều kiện là chỉ đƣợc phép xác định cho duy nhất một ngƣời, đề phòng có sự phủ nhận hay tranh chấp sau này. Trong khi đó, mã khóa bí mật tƣơng ứng đƣợc định hình bởi trung tâm tạo mã và sẽ cấp cho ngƣời sử dụng các hình thức thẻ thông minh khi lần đầu tiên tham gia mạng lƣới. Thẻ có chứa một bộ vi xử lý, một cổng 1/0, một bộ nhớ RAM, ROM với khóa bí mật, các chƣơng trình để mã hóa/giải mã tin nhắn và hệ chữ ký xác minh.
Lƣợc đồ cũng dựa trên nhận dạng của hệ thống thƣ điện tử: nếu bạn biết tên và địa chỉ của ai đó, bạn có thể gửi tin nhắn mà chỉ ngƣời đó mới có thể đọc, hoặc bạn có thể xác minh chữ ký mà chỉ ngƣời đó mới có thể làm ra. Điều này khiến cho việc thông tin liên lạc trở nên rõ ràng và dễ sử dụng, ngay cả đối với ngƣời không có kiến thức về mật khẩu mã hóa. Cụ thể: khi ngƣời dùng A muốn gửi một thông điệp tới ngƣời B, anh ta đặt thông điệp cùng với từ khóa bí mật vào trong thẻ thông minh của mình, mã hóa kết quả bằng cách sử dụng tên và địa chỉ của ngƣời B, cho biết thêm tên riêng và địa chỉ của mình vào tin nhắn, rồi gửi nó đến B. Khi B nhận đƣợc thông báo, anh ta sẽ giải mã nó bằng cách sử dụng từ khóa bí mật trong thẻ thông minh của mình, sau đó xác minh chữ ký bằng cách sử dụng tên và địa chỉ của ngƣời gửi.
Lƣợc đồ kết hợp hiệu quả tin nhắn với thông tin nhận diện cá nhân và hiệu quả sở hữu của ngƣời sử dụng với thẻ của mình. Giống nhƣ bất kì cơ quan nào liên quan đến Chứng minh thƣ hoặc ID Cards, trung tâm phải rà soát và sàng lọc cẩn thận toàn bộ các thẻ để tránh những sai lệch, thất lạc và phải bảo vệ cẩn thận con dấu của mình tránh những hình thức giả mạo, làm nhái. Ngƣời sử dụng có thể tự bảo vệ bản thân mình không bị sử dụng thẻ trái phép thông qua một hệ thống mật khẩu hoặc ghi nhớ từ khóa.
43
2.1.2.3 Lƣợc đồ mã hóa dựa trên định danh
IBE lần đầu tiên đƣợc Adi Shamir nói tới vào năm 1984, khi ông mô tả một cách khái lƣợc về các tính chất và cách thức sử dụng một hệ thống nhƣ vậy. Mặc dù ông chƣa thực hiện đƣợc một công nghệ an toàn và khả thi hoạt động nhƣ đã mô tả, song các ƣu thế về khả năng sử dụng của IBE so với các công nghệ khác đã đƣợc ông mô tả nhƣ sau: (hình 9)
Hình 9: Mã hoá bằng hệ thống IBE
Một hệ thống IBE có các điểm tƣơng tự với các hệ thống khoá công khai truyền thống, nhƣng cũng có nhiều điểm khác biệt. Trong khi các khoá công khai truyền thống chứa tất cả các tham số cần thiết để sử dụng khoá, thì để sử dụng một hệ thống IBE, ngƣời sử dụng thông thƣờng cần nhận đƣợc một tập các tham số công khai từ một bên thứ ba tin cậy. Cùng với những tham số này, ngƣời sử dụng có thể tính khoá công khai IBE của ngƣời sử dụng bất kỳ khác và dùng nó để mã hóa thông tin gửi tới ngƣời đó
Ngƣời nhận thông tin đã đƣợc mã hoá bởi IBE sau đó xác thực theo một cách nào đó với bộ tạo khoá bí mật (PKG- private key generator). Một bên thứ ba tin cậy tính đƣợc khoá bí mật IBE tƣơng ứng với một khoá công khai IBE cụ thể.Bộ tạo khoá bí mật thƣờng sử dụng thông tin bí mật, đƣợc gọi là bí mật chủ (master secret) cộng với định danh của ngƣời sử dụng để tính ra khoá bí mật. Sau khi khoá bí mật đó đƣợc tính ra, nó đƣợc phân phối một cách an toàn tới ngƣời sử dụng có thẩm quyền (Hình 10).
44 Hình 10: Giải mã bằng hệ thống IBE
2.1.2.4 Ƣu điểm mã hóa IBE
Phần lớn các tổ chức đang sử dụng một dạng hạ tầng nào đó để quản lý các định danh, thậm chí nó có thể đơn giản nhƣ các tổ hợp username/password.Các hệ thống phức tạp để quản lý các dạng tổng quát hơn của định danh có thể sử dụng IBE. Trong đó nhiều nguồn gốc khác nhau của thông tin định danh có thể đƣợc kết hợp và đƣợc sử dụng để tính các khoá IBE mà sau đó có thể bắt buộc truy cập tới thông tin nhạy cảm theo các cách tƣơng ứng với các thẩm quyền mà các tổ hợp khác nhau của các định danh có thể mang lại. Giống nhƣ một thông điệp e-mail có thể đƣợc mã hoá cho nhiều ngƣời nhận, ngƣời bất kỳ trong số họ có thể giải mã nó, chúng ta có thể sử dụng IBE để mã hoá thông tin nhạy cảm mà có thể đƣợc giải mã bởi ngƣời nào đó thoả mãn một trong những tổ hợp của thông tin định danh đang tồn tại. Do các xu hƣớng thay đổi trong cả kinh doanh và công nghệ làm cho việc bảo vệ dữ liệu bằng mã hoá ngày càng đƣợc quan tâm, các tính chất của IBE làm cho nó đặc biệt hữu ích để giải quyết các bài toán an toàn dữ liệu khác nhau.
Dƣờng nhƣ là các đặc tính của IBE đem lại cho các hệ thống sử dụng công nghệ này các tính chất thú vị và cho phép tạo ra các giải pháp dễ sử dụng hơn và ít tốn kém hơn để hỗ trợ so với các giải pháp đƣợc cung cấp bởi các công nghệ khoá công khai truyền thống. Mặt khác, IBE chỉ cung cấp khả năng để mã hoá và không cho phép tạo ra các chữ ký số. Điều này có nghĩa rằng một giải pháp an toàn thông
45 tin đầy đủ cung cấp tính bí mật, tính toàn vẹn, tính sẵn sàng, xác thực và chống chối bỏ, phải là một giải pháp hỗn hợp sử dụng cả IBE và các công nghệ khoá công khai truyền thống để cung cấp một giải pháp có ƣu thế của sức mạnh từng công nghệ. Các giải pháp nhƣ vậy có thể làm giảm giá thành của việc sử dụng mật mã tới mức có thể chấp nhận để đƣợc sử dụng trên một phạm vi rộng lớn, ngƣợc lại với nguyên lý của Geer rằng bất kỳ việc sử dụng mật mã nào cũng tốn kém. Các giải pháp nhƣ vậy hứa hẹn thúc đẩy các ứng dụng thƣơng mại hiện có của IBE và cũng sẽ thúc đẩy các ứng dụng của công nghệ trong tƣơng lai.
2.2 Thuật toán mã hóa dữ liệu 2.2.1 Thuật toán mã hóa DES 2.2.1 Thuật toán mã hóa DES 2.2.1.1 Giới thiệu:
DES (viết tắt của Data Encryption Standard, hay Tiêu chuẩn Mã hóa Dữ liệu) là một phƣơng pháp mật mã hóa đƣợc FIPS (Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976. Sau đó chuẩn này đƣợc sử dụng rộng rãi trên phạm vi thế giới. Ngay từ đầu, thuật toán của nó đã gây ra rất nhiều tranh cãi, do nó bao gồm các thành phần thiết kế mật, độ dài khóa tƣơng đối ngắn, và các nghi ngờ về cửa sau để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa. Do đó, DES đã đƣợc giới nghiên cứu xem xét rất kỹ lƣỡng, việc này đã thúc đẩy hiểu biết hiện đại về mật mã khối (block cipher) và các phƣơng pháp thám mã tƣơng ứng.
Hiện nay DES đƣợc xem là không đủ an toàn cho nhiều ứng dụng. Nguyên nhân chủ yếu là độ dài 56 bit của khóa là quá nhỏ. Khóa DES đã từng bị phá trong vòng chƣa đầy 24 giờ.Đã có rất nhiều kết quả phân tích cho thấy những điểm yếu về mặt lý thuyết của mã hóa có thể dẫn đến phá khóa, tuy chúng không khả thi trong thực tiễn. Thuật toán đƣợc tin tƣởng là an toàn trong thực tiễn có dạng Triple DES (thực hiện DES ba lần), mặc dù trên lý thuyết phƣơng pháp này vẫn có thể bị phá. Gần đây DES đã đƣợc thay thế bằng AES (Advanced Encryption Standard, hay Tiêu chuẩn Mã hóa Tiên tiến).
Trong một số tài liệu, ngƣời ta phân biệt giữa DES (là một tiêu chuẩn) và thuật toán DEA (Data Encryption Algorithm, hay Thuật toán Mã hóa Dữ liệu) - thuật toán dùng trong chuẩn DES.
46
2.2.1.2 Thuật toán :
DES là thuật toán mã hóa khối: nó xử lý từng khối thông tin của bản rõ có độ dài xác định và biến đổi theo những quá trình phức tạp để trở thành khối thông tin của bản mã có độ dài không thay đổi. Trong trƣờng hợp của DES, độ dài mỗi khối là 64 bit.DES cũng sử dụng khóa để cá biệt hóa quá trình chuyển đổi.Nhờ vậy, chỉ khi biết khóa mới có thể giải mã đƣợc văn bản mã.Khóa dùng trong DES có độ dài toàn bộ là 64 bit.Tuy nhiên chỉ có 56 bit thực sự đƣợc sử dụng; 8 bit còn lại chỉ dùng cho việc kiểm tra.Vì thế, độ dài thực tế của khóa chỉ là 56 bit.
Giống nhƣ các thuật toán mã hóa khối khác, khi áp dụng cho các văn bản dài hơn 64 bit, DES phải đƣợc dùng theo một phƣơng pháp nào đó. Trong tài liệu FIPS-81 đã chỉ ra một số phƣơng pháp, trong đó có một phƣơng pháp dùng cho quá trình nhận thực. Một số thông tin thêm về những cách sử dụng DES đƣợc miêu tả trong tài liệu FIPS-74.
Cấu trúc tổng thể của thuật toán đƣợc thể hiện ở Hình 1: có 16 chu trình giống nhau trong quá trình xử lý. Ngoài ra còn có hai lần hoán vị đầu và cuối (Initial and final permutation - IP & FP).Hai quá trình này có tính chất đối nhau (Trong quá trình mã hóa thì IP trƣớc FP, khi giải mã thì ngƣợc lại). IP và FP không có vai trò xét về mật mã học và việc sử dụng chúng chỉ có ý nghĩa đáp ứng cho quá trình đƣa thông tin vào và lấy thông tin ra từ các khối phần cứng có từ thập niên 1970. Trƣớc khi đi vào 16 chu trình chính, khối thông tin 64 bit đƣợc tách làm hai phần 32 bit và mỗi phần sẽ đƣợc xử lý tuần tự (quá trình này còn đƣợc gọi là mạng Feistel).
Cấu trúc của thuật toán (mạng Feistel) đảm bảo rằng quá trình mã hóa và giải mã diễn ra tƣơng tự. Điểm khác nhau chỉ ở chỗ các khóa con đƣợc sử dụng theo trình tự ngƣợc nhau. Điều này giúp cho việc thực hiện thuật toán trở nên đơn giản, đặc biệt là khi thực hiện bằng phần cứng.
Ký hiệu sau: thể hiện phép toán XOR. Hàm F làm biến đổi một nửa của khối đang xử lý với một khóa con. Đầu ra sau hàm F đƣợc kết hợp với nửa còn lại của khối và hai phần đƣợc tráo đổi để xử lý trong chu trình kế tiếp. Sau chu trình cuối cùng thì 2 nửa không bị tráo đổi; đây là đặc điểm của cấu trúc Feistel khiến cho quá trình mã hóa và giải mã trở nên giống nhau.
47 1. Mở rộng: 32 bit đầu vào đƣợc mở rộng thành 48 bit sử dụng thuật toán hoán vị mở rộng (expansion permutation) với việc nhân đôi một số bit. Giai đoạn này đƣợc ký hiệu là E trong sơ đồ.
2. Trộn khóa: 48 bit thu đƣợc sau quá trình mở rộng đƣợc XOR với khóa con. Mƣời sáu khóa con 48 bit đƣợc tạo ra từ khóa chính 56 bit theo một chu trình tạo khóa con (key schedule) miêu tả ở phần sau.
3. Thay thế: 48 bit sau khi trộn đƣợc chia làm 8 khối con 6 bit và đƣợc xử lý qua hộp thay thế S-box. Đầu ra của mỗi khối 6 bit là một khối 4 bit theo một chuyển đổi phi tuyến đƣợc thực hiện bằng một bảng tra. Khối S-box đảm bảo phần quan trọng cho độ an toàn của DES. Nếu không có S-box thì quá trình sẽ là tuyến tính và việc thám mã sẽ rất đơn giản.
4. Hoán vị: Cuối cùng, 32 bit thu đƣợc sau S-box sẽ đƣợc sắp xếp lại theo một thứ tự cho trƣớc (còn gọi là P-box).
Hàm F, nhƣ đƣợc miêu tả ở Hình 11, hoạt động trên khối 32 bit và bao gồm bốn giai đoạn:
Hình 11: Hàm F (F-function) dùng trong DES
Quá trình luân phiên sử dụng S-box và sự hoán vị các bít cũng nhƣ quá trình mở rộng đã thực hiện đƣợc tính chất gọi là sự xáo trộn và khuếch tán (confusion and diffusion). Đây là yêu cầu cần có của một thuật toán mã hoá đƣợc Claude Shannon phát hiện trong những năm 1940.
48 Hình 12: Quá trình tạo khóa con trong DES
Hình 12 mô tả thuật toán tạo khóa con cho các chu trình. Đầu tiên, từ 64 bit ban đầu của khóa, 56 bit đƣợc chọn (Permuted Choice 1, hay PC-1); 8 bit còn lại bị loại bỏ. 56 bit thu đƣợc đƣợc chia làm hai phần bằng nhau, mỗi phần đƣợc xử lý độc lập. Sau mỗi chu trình, mỗi phần đƣợc dịch đi 1 hoặc 2 bit (tùy thuộc từng chu trình, nêu đó là chu trình 1,2,9,16 thì đó là dịch 1bit, còn lại thì sẽ đƣợc dich 2bit).