Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

download Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

of 73

Transcript of Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    1/73

     

    ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ 

    ..................o0o.................  

    PHÙNG THỊ NGUYỆT 

    CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG QUẢN LÝVĂN BẢN ĐIỆN TỬ  

    HÀ NỘI  –  2011

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    2/73

     

    ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ 

    ..................o0o.................  

    PHÙNG THỊ NGUYỆT 

    CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG QUẢN LÝVĂN BẢN ĐIỆN TỬ  

    Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thông tin 

    Mã Số: 60.45.05 

    LUẬN VĂN THẠC SỸ 

    Người hướng dẫn khoa học: PGS. TS Đoàn Văn Ban 

    HÀ NỘI  –  2011

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    3/73

    1

    MỤC LỤC 

    Danh mục các từ viết tắt ..................................................................................... 3 Danh mục các hình vẽ ......................................................................................... 4 MỞ ĐẦU ............................................................................................................. 5 Chương 1. An toàn thông tin, Hệ mã hoá khoá công khai ................................ 8 

    1.1.1 Tại sao phải bảo mật an toàn thông tin .............................................................. 8 1.1.2 Các giải pháp bảo mật an toàn thông tin [2] ...................................................... 8 

    1.2 Hệ mã hoá............................................................................................................... 9 1.2.1 Khái niệm mã hoá dữ liệu ................................................................................. 9 1.2.2 Phân loại hệ mã hoá .......................................................................................... 9 

    1.2.2.1 Hệ mã hoá khóa đối xứng ......................................................................... 10 1.2.2.2 Hệ mã hoá khóa công khai ........................................................................ 11 

    1.3 Cở sở toán học dùng trong hệ mật mã [1] .............................................................. 13 1.3.1 Ước chung lớn nhất, bội chung nhỏ nhất ......................................................... 13 1.3.2 Số nguyên tố ................................................................................................... 15 1.3.3 Quan hệ đồng dư ............................................................................................. 15 1.3.4 Cấu trúc nhóm ................................................................................................ 17 

    1.3.4.1 Phép nhân, phép luỹ thừa, phép chia ......................................................... 17 1.3.4.2. Phần tử sinh ............................................................................................. 18 

    1.4. Một số hệ mã hoá khoá công khai ........................................................................ 19 1.4.1 Hệ mã hoá khoá công khai RABIN [1]............................................................ 19 

    1.4.1.1. Sơ đồ ....................................................................................................... 19 1.4.1.2. Ví dụ minh họa ........................................................................................ 20 

    1.4.2. Hệ mã hóa khoá công khai ELGAML [2]....................................................... 23 1.4.2.1. Sơ đồ ....................................................................................................... 23 1.4.2.2 Ví dụ minh hoạ ......................................................................................... 24 

    1.4.3 Hệ mã hóa khoá công khai RSA ..................................................................... 24 1.4.3.1 sơ đồ......................................................................................................... 24 1.4.3.2 Ví dụ minh hoạ ......................................................................................... 25 1.4.3.3 Độ an toàn ................................................................................................ 26 

    1.5 Kết luận chương .................................................................................................. 26 Chương 2. Chữ ký số ........................................................................................ 28 

    2.1 Giới thiệu .............................................................................................................. 28 2.2 Khái niệm ............................................................................................................. 28 

    2.2.1 Khái niệm ...................................................................................................... 28 2.2.2 Sơ đồ chữ ký số [2] ........................................................................................ 28 

    2.2.3 Các ưu điểm của chữ ký số ............................................................................. 29 2.2.4 Quá trình thực hiện chữ ký số khóa công khai................................................ 30 2.3 Hàm  băm [2, 6] ..................................................................................................... 31 

    2.3.1 Khái niệm ....................................................................................................... 31 2.3.2 Các hàm băm thông dụng ................................................................................ 32 

    2.3.2.1 Thuật toán hàm băm MD5 ........................................................................ 32 2.3.2.2 Hàm băm SHS/ SHA ................................................................................ 34 

    2.4 Thuật toán chữ ký số [1, 2, 7] ............................................................................... 35 

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    4/73

    2

    2.4.1 Thuật toán chữ ký RSA ................................................................................... 35 2.4.1.1 Sơ đồ ....................................................................................................... 35 2.4.1.2 Ví dụ minh hoạ ........................................................................................ 36 2.4.1.3 Độ an toàn của chữ ký RSA..................................................................... 36 

    2.4.2 Thuật toán chữ ký DSA/ DSS ......................................................................... 37 2.4.2.1 Sơ đồ ....................................................................................................... 37 

    2.4.2.2 Ví dụ ....................................................................................................... 38 2.4.2.3 Độ an toàn của chữ ký DSA ................................................................... 38 

    2.5 Kết luận chương ................................................................................................... 39 Chương 3. Chứng thực khóa công khai .......................................................... 41 

    3.1 Giới thiệu .............................................................................................................. 41 3.2 Chứng thực khoá công khai .................................................................................. 41 

    3.2.1 Khái niệm ....................................................................................................... 41 3.2.2 Các nhà cung cấp dịch vụ chữ ký số, chứng thực chữ ký số tại Việt Nam ....... 43 

    3.3. Chứng thực khóa công khai X.509 [3] ................................................................ 44 3.3.1. Sự chứng thực của người dùng ....................................................................... 45 

    3.3.1.1. Giới thiệu khuôn dạng chứng chỉ X.509 .................................................. 45 3.3.1.2. Sự chứng thực người dùng ....................................................................... 47 3.3.2 Huỷ bỏ sự chứng thực ..................................................................................... 49 3.3.3. Các thủ tục chứng thực .................................................................................. 50 

    3.4 Kết luận chương ................................................................................................... 51 Chương 4. Xây dựng chương trình ứng dụng ................................................. 53 

    4.1 Giới thiệu .............................................................................................................. 53 4.2 Các chức năng của chương trình ........................................................................... 53 4.3. Cài đặt chương trình ............................................................................................ 58 

    4.3.1. Môi trường xây dựng ứng dụng ...................................................................... 58 

    4.3.2 Quản trị hệ thống Admin................................................................................. 59 

    4.3.3 Người sử dụng ................................................................................................ 62 4.4 Kết luận chương ................................................................................................... 68 

    Kết quả và hướng phát triển ............................................................................ 69 Danh mục các tài liệu tham khảo ..................................................................... 71 

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    5/73

    3

    Danh mục các từ viết tắtMD5 Message Digest 5

    CA Certificate Authority

    RSA Rivest, Shamir, Adleman

    SHA Secure Hash Algorithm

    DSS Digital Signature Standard

    DSA Digital Signature Algorithm

    PKI public-key infrastructures

    PEM Privary Enhanced Mail

    ITU International Telecommunication Union

    online OCSP Online Certificate Status Protocol

    certificate revocation list CRL

    SHS Secure Hash Standard

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    6/73

    4

    Danh mục các hình vẽ Hình 1.1 Quá trình thực hiện cơ chế mã hoá .......................................................... 10 Hình 1.2. Quá trình thực hiện mã hoá khoá công khai ........................................... 12 Hình 2.1. Sơ đồ mô tả quá trình ký và gửi các tệp văn bản .................................... 30 Hình 2.2. Sơ đồ mô tả quá trình nhận các tệp văn bản ........................................... 31 

    Hình 2.3. Minh họa hàm băm ................................................................................ 32 Hình 2.4: Đặc điểm của các thuật toán băm SHA .................................................. 35 Hình 3.1. Khuôn dạng chứng chỉ X.509 phiên bản 3 ............................................. 46 Hình 3.2 Ví dụ minh hoạ sơ đồ thứ tự phân cấp .................................................... 49 Hình 3.3. Các thủ tục chứng thực .......................................................................... 51 Hình 4.1: Giao diện chương trình ứng dụng .......................................................... 54 Hình 4.2: Thực đơn Hệ thống của chương trình  .................................................... 54 Hình 4.3: Thực đơn Tệp của chương trình ............................................................. 55 Hình 4.4: Thực đơn Chỉnh sửa của chương trình ................................................... 55 Hình 4.5: Thực đơn Chức năng của chương trình .................................................. 56 Hình 4.6 và hình 4.7: Admin thực hiện Đăng nhập hệ thống  ................................. 59 Hình 4.7 và hình 4.8: Admin thực hiện Đăng ký người dùng mới  ......................... 60 Hình 4.9, hình 4.10 và hình 4.11: Admin thực hiện Tạo khóa cho người dùng mới  .............................................................................................................................. 61 

    Hình 4.12 và hình 4.13: Admin thực hiện Quản lý người dùng  ............................. 62 Hình 4.14: Thực hiện mở tệp mới và soạn thảo văn bản ........................................ 63 Hình 4.15: Người sử dụng thực hiện ký và lưu văn bản ......................................... 63 Hình 4.16 và hình 4.17: Thực hiện mở tệp Giấy triệu tập nhận được  ..................... 64 Hình 4.18: Chọn File khoá công khai để xác thực ................................................. 65 

    Hình 4.19 và hình 4.20: Thực hiện tải khóa công khai theo Tên tài khoản (theo  User Name của người sử dụng) ............................................................................. 65 Hình 4.21: Chọn nơi lưu khoá công khai tải về  ..................................................... 66 Hình 4.22: Xác thực văn bản theo khoá công khai tải về ....................................... 66 Hình 4.23: Thông báo xác thực văn bản không bị giả mạo và Thông tin người ký  66 Hình 4.24: Thông báo văn bản đã bị giả mạo trên đường truyền  ........................... 67 Hình 4.25 và hình 4.26: Thông báo văn bản không bị thay đổi nội dung hoặc bị giảmạo trên đường truyền và người ký không có trong cơ sở dữ liệu quản lý.  ............ 67 

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    7/73

    5

    MỞ  ĐẦU

    1. Lý do chọn đề tài 

    Cùng với sự  phát triển của công nghệ thông tin và truyền thông, giao dịch điện tử 

    đã và đang  phát triển mạnh mẽ trên thế giới thay thế dần các giao dịch truyền thống. R ất

    nhiều nước có  chủ  tr ương vừa phát triển các  hoạt động cung ứng dịch vụ điện tử, vừa

    xây dựng hệ thống  pháp luật đầy đủ, minh bạch để đảm bảo giá trị phá p lý của các thông

    điệ p điện tử và giao dịch điện tử. Tại Việt Nam, giao dịch điện tử đã được áp dụng tại

    các lĩnh vực thuế, hải quan, thương mại điện tử,...

    Giao dịch điện tử là một lĩnh vực tương đối mới tại Việt Nam, xuất hiện cùng với

    sự phổ cập mạng Internet và máy tính từ cuối những năm 1990 đầu những năm 2000. Qua

    quá trình hình thành và phát triển, lĩnh vực giao dịch điện tử tại Việt Nam đã được đặc biệt quan tâm phát triển. Khung pháp lý cho lĩnh vực này đã từng bước được hoàn thiện,

    Quốc hội đã thông qua Luật thương mại, Luật giao dịch điện tử, Luật công nghệ thông tin.

    Thủ tướng chính phủ đã ban hành Quyết định số 1073/QĐ-TTg ngày 12/7/2010 Phê duyệt

    kế hoạch tổng thể phát triển thương mại điện tử giai đoạn 2011 –  2015... Việc ban hành 

    các văn bản phá p lý này đã thể hiện rõ sự quyết tâm của  Nhà nước  trong việc thúc đẩy

    nhanh, mạnh các giao dịch điện tử, tạo động lực cho sự phát triển của nền kinh tế.

    Trong các  hoạt động của  giao dịch điện tử  thì  việc đảm bảo an toàn,  an ninh

    thông tin, dữ liệu cho người dùng  là rất cần thiết và  là  ưu tiên hàng đầu. Theo k ết quảkhảo sát thương mại điện tử Việt Nam 2010 của Bộ Công thương, trong 7 trở ngại khiến

    thương mại điện tử chưa phát triển thì vấn đề an ninh, an toàn thông tin chiếm vị trí gần

    cao nhất (chỉ sau trở ngại về môi trường xã hội và tập quán kinh doanh). Các   phương 

     pháp mã hóa,  chữ  k ý  số, chứng chỉ số, cơ sở  hạ  tầng khóa công khai và  các ứng dụng

    của  chữ  k ý  số,  chứng chỉ  số  trong các giao dịch điện tử  là một trong những giải pháp

    giải quyết vấn đề này. Từ thực tế này, tôi chọn đề tài: “Chữ ký số và ứng dụng trong quản

    lý văn bản điện tử”. Đây sẽ là đề  tài có ý ngh ĩ a thực tế r ất lớn bởi vì sau khi hành làng

     phá p lý cho giao dịch điện tử đượ c xây dựng, hạ tầng kỹ thuật và nhân lực hình thànhthì mục  tiêu  tiế p theo sẽ  là  triển khai giao dịch điện tử sâu rộng đến toàn bộ các hoạt

    động của nền kinh tế mà song hành cùng đó là vấn đề bảo đảm an toàn, an ninh thông

    tin trong các hoạt động. Trong hoàn cảnh Việt Nam hiện nay, việc phát triển các giao

    dịch  điện tử  chậm trễ  một phần là do vấn đề an toàn, an ninh thông tin trong giao dịch

    chưa tạo được sự quan tâm đúng mức. Luận văn sẽ  tậ p trung  phân  tích áp dụng các giải

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    8/73

    6

     phá p k ỹ  thuật như  mã hóa, chữ k ý số, chứng chỉ số nhằm đảm bảo an toàn, an ninh cho

    các giao dịch điện tử, thúc đẩy giao dịch điện tử tại Việt Nam tiếp tục phát triển.  

    2. Mục tiêu nghiên cứu 

       Nghiên cứu các giải pháp mã hoá để bảo mật thông tin và những phương pháp, kỹ

    thuật tạo chữ kí số trên các tài liệu, văn bản điện tử để xác thực nguồn gốc tài liệuhay văn bản của người gửi.

      Xây dựng một chương trình ứng dụng có khả năng bảo mật nội dung thông tin dưới

    dạng văn bản điện tử, tạo chữ ký trên văn bản điện tử cần thiết và chứng thực chữ ký 

    số trên văn bản điện tử; góp phần phục vụ những người quản lý đơn vị trao đổi thông

    tin mật với các đối tác, điều hành công việc từ xa.

    Luận văn sẽ tập trung nghiên cứu và làm rõ hơn về ý tưởng, cơ sở toán học, thuật

    toán và độ phức tạp của mã hoá nói chung và của mã hoá khoá công khai nói riêng.

    3. Phương pháp nghiên cứu 

     Nghiên cứu các tài liệu về mã hoá, hệ mật mã của các tác giả trong và ngoài nước,

    các bài báo, thông tin trên mạng, … 

     Nghiên cứu ngôn ngữ lập trình hướng đối tượng Visual basic 6, Visual C#  2008 để 

    viết một ứng dụng về chữ ký số. 

    4. Tổng quan luận văn Luận văn được trình  bày trong 4 chương, phần kết quả và hướng phát triển.

    Chương 1  An toàn thông tin, Hệ mã hoá khoá công khai  Chương này giới thiệu  tổng quan về an toàn thông tin và hệ mã hoá khoá công

    khai. Giới thiệu cơ sở toán học và một số hệ mã hoá khoá công khai phổ biến như Rabin,

    Elgmal, RSA. Trong đó giới thiệu chi tiết về hệ mã hoá khoá công khai RSA về các h mã

    hoá, giải mã và độ an toàn của thuật toán. 

    Chương 2 Chữ ký số  

    Chương này giới thiệu về khái niệm chữ ký số và sơ đồ chữ ký số tổng quan. Sau

    đó giới thiệu một số hàm băm phổ biến dùng trong thuật toán chữ ký số như MD5, SHA -

    1. Tiếp đó giới thiệu chi tiết về hai thuật toán  chữ ký số được sử dụng rộng rãi hiện nay làRSA và DSA.

    Chương 3. Chứng thực 

    Chương này giới thiệu chứng thực số - chứng chỉ điện tử và giới thiệu chi tiết về

    chứng thực số X.509. 

    Chương 4. Xây dựng chương trình ứng dụng  

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    9/73

    7

    Từ cơ sở   lý thuyết đã trình bày ở trên, chương này của luận văn tiến hành cài đặt

    thuật toán ký RSA. Chữ ký được hình thành trên cơ sở kết hợp thuật toán băm MD5 với

    thuật toán ký RSA. 

    5. Các kí hiệu dùng trong luận văn 

    P Là tập hữu hạn các văn bản có thể.

     A Là tập hữu hạn các chữ ký có thể.

    K Là tập hữu hạn các khoá có thể.

    S  Là tập các thuật toán ký.

     V Là tập các thuật toán kiểm thử.

    C Là tập hữu hạn các bản mã có thể; 

    E Là tập hợp các hàm mã hóa có thể; 

    D Là tập các hàm giải mã có thể; 

    ek Thuật toán mã hoá dk   Thuật toán giải mã 

    gcd  Ước chung lớn nhất 

    lcm  Bội chung nhỏ nhất 

    Sig k Thuật toán ký

    Ver k Thuật toán kiểm tra chữ ký 

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    10/73

    8

    Chương 1. An toàn thông tin, Hệ mã hoá khoá công khai 

    1.1 An toàn thông tin 

    1.1.1 Tại sao phải bảo mật an toàn thông tin 

     Ngày nay với sự phát triển bùng nổ của công nghệ thông tin, hầu hết các thông tin

    của doanh nghiệp như chiến lược kinh doanh, các thông tin về khách hàng, nhà cung cấp ,

    tài chính, mức lương nhân viên,… đều được lưu trữ trên hệ thống máy tính. Cùng với sự

     phát triển của doanh nghiệp là những đòi hỏi ngày càng cao của môi trường kinh doanh

    yêu cầu doanh nghiệp cần phải chia sẻ thông tin của mình cho nhiều đối tượng khác nhau

    qua Internet hay Intranet. Việc mất mát, rò rỉ thông tin có thể ảnh hưởng nghiêm trọng

    đến tài chính, danh tiếng của công ty và quan hệ với khách hàng.  

    Các phương thức tấn công thông qua mạng ngày càng tinh vi, phức tạp có thể dẫn

    đến mất mát thông tin, thậm chí có thể làm sụp đổ hoàn toàn hệ thống thông tin của doanh

    nghiệp. Tóm lại, có bốn yêu cầu cơ bản về bảo mật truyền thông: 

       Đảm bảo tin cậy: Các nội dung thông tin không bị theo dõi hoặc sao chép bởi

    những thực thể không được uỷ thác. 

       Đảm bảo toàn vẹn: Các nội dung thông tin không bị thay đổi bởi những thực thể

    không được uỷ thác. 

      Sự chứng minh xác thực: Không ai có thể tự trá hình như là một bên hợp pháp

    trong quá trình trao đổi tin. 

       Không thể thoái thác trách nhiệm:  Người gửi tin không thể thoái thác về những sự

    việc và những nội dung thông tin mà thực tế họ đã gửi đi. 

    1.1.2 Các giải pháp bảo mật an toàn thông tin  [2]

    Trướ c những nguy cơ hiểm hoạ  về  an toàn thông tin, phần này đề  xuất các giải

     pháp bảm mật về an toàn thông tin: a) Phương pháp che giấu, bảo đảm toàn vn và xác thực thông tin. 

      ”Che ” dữ liệu (Mã hóa): Thay đổi hình dạng dữ liệu gốc, người khác khó nhận ra.

      “Giấu” dữ liệu: Cất giấu dữ liệu này trong môi trường dữ liệu khác .

      Bảo đảm toàn vn và xác thực thông tin .

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    11/73

    9

     K thut : Mã hóa , Hàm băm, Giấu tin, Ký số, Thủy ký , Giao thức bảo toàn thông tin ,

    Giao thức xác thực thông tin, ... 

     b) Phương pháp kiểm soát lối vào ra của thông tin . 

      Kiểm soát, ngăn chặn các thông tin vào ra Hệ thống máy tính .

      Kiểm soát, cấp quyền sử dụng các thông tin trong Hệ thống máy tính .

      Kiểm soát, tìm diệt “sâu bọ” (Virus, “Trojan horse”,..) vào ra Hệ thống máy tính.

     K thut : Mật khẩu (PassWord), Tường lửa (FireWall), Mạng riêng ảo  (Virtual Private

     Network), Nhận dạng, Xác thực thực thể, Cấp quyền hạn.

    c) Phát hiện và xử lý các l hổng trong An toàn thông tin.

      Các “l hổng” trong các Thuật toán hay giao thức mật mã, giấu tin.

      Các “l hổng” trong các Giao thức mạng .

      Các “lỗ hổng” trong các Hệ điều hành mạng .

      Các “lỗ hổng” trong các ứng dụng. 

    d) Phối hợp các phương pháp. 

    Xây dựng “hành lang”, “đường đi” An toàn cho thông tin gồm 3 phần:

      Hạ tầng mật mã khóa công khai (Public Key InfraStructure - PKI).

      Kiểm soát lối vào - ra: Mật khẩu, Tường lửa, Mạng riêng ảo, Cấp quyền hạn.

      Kiểm soát và Xử lý các lỗ hổng .

    1.2 Hệ mã hoá

    1.2.1 Khái niệm mã hoá dữ liệu 

    Mã hoá dữ liệu là mã hóa vớ i mục đích làm cho dữ liệu không thể đọc đượ c bở i bất

    cứ ai, ngoại tr ừ những ai đượ c phép đọc. Mã hóa sử dụng thuật toán và khóa để biến đổi

    dữ liệu từ hình thức đơn giản rõ ràng (plain hay cleartext) sang hình thức mật mã vô nghĩa

    (code hay ciphertext). Chỉ có những ai có thông tin giải mã thì mớ i giải mã và đọc đượ c

    dữ liệu.

    1.2.2 Phân loại hệ mã hoá 

    Có nhiều cách phân loại hệ mã hoá, sau đây xin giới thiệu một cách đó là: Phân

    loại mã hoá theo đặc trưng của khoá. Theo cách phân loại nay thì hệ mã hoá được chia

    thành hai loại đó là:

      Hệ mã hóa khóa đối xứng (có khoá riêng và khoá chung trùng nhau).

      Hệ mã hóa khóa phi đối xứng (Khóa công khai có khoá riêng và khoá chung khác

    nhau).

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    12/73

    10

    1.2.2.1 Hệ mã hoá khóa đối xứng  

    Hệ mã hoá khóa đối xứng là Hệ mã hóa mà biết được khóa mã hoá  thì có thể “dễ ”

    tính được khóa giải mã và ngược lại. 

    Trong hệ thống mã hoá đối xứng, trước khi truyền dữ liệu, 2 bên gửi và nhận phải

    thoả thuận về khoá dùng chung cho quá trình mã hoá và giải mã. Sau đó, bên gửi sẽ mãhoá bản rõ (Plaintext) bằng cách sử dụng khoá bí mật này và gửi thông điệp đã mã hoá

    cho bên nhận. Bên nhận sau khi nhận được thông điệp đã mã hoá sẽ sử dụng chính khoá

     bí mật mà hai bên thoả thuận để giải mã và lấy lại bản rõ (Plaintext). 

    Hình 1.1 Quá trình thực hiện cơ chế mã hoá 

    Hình 1.1 là quá trình tiến hành trao đổi thông tin giữa bên gửi và bên nhận thông

    qua việc sử dụng phương pháp mã hoá khoá đối xứng. Trong quá trình này, thì thành

     phần quan trọng nhất cần phải được giữ bí mật chính là khoá. Việc trao đổi, thoả thuận về

    thuật toán được sử dụng  trong việc mã hoá có thể tiến hành một cách công khai, nhưng bước thoả thuận về khoá trong việc mã hoá và giải mã phải tiến hành bí mật. Chúng ta có

    thể thấy rằng thuật toán mã hoá khoá đối xứng sẽ rất có lợi khi được áp dụng trong các cơ

    quan hay tổ chức đơn lẻ. Nhưng nếu cần phải trao đổi thông tin với một bên thứ ba thì

    việc đảm bảo tính bí mật của khoá phải được đặt lên hàng đầu.  

    Mã hoá đối xứng có thể được phân thành hai loại: 

     Loại thứ nhất tác động trên bản rõ theo từng nhóm bits. Từng nhóm bits này được

    gọi với một cái tên khác là khối (Block) và thuật toán được áp dụng gọi là mã hoá

    khối( Block Cipher). Theo đó, từng khối dữ liệu trong văn bản  ban đầu được thaythế bằng một khối dữ liệu khác có cùng độ dài. Đối với các thuật toán ngày nay thì

    kích thước chung của một khối là 64 bits. 

     Loại thứ hai tác động lên bản rõ theo từng bit một. Các thuật toán áp dụng được

    gọi là mã hoá dòng (Stream Cipher). Theo đó, dữ liệu của văn bản được mã hoá từng

     bit một. Các thuật toán mã hoá dòng này có tốc độ nhanh hơn các thuật toán mã hoá

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    13/73

    11

    khối và nó thường được áp dụng khi lượng dữ liệu cần mã hoá chưa biết trước 

    Một số thuật toán nổi tiếng trong mã hoá đối xứng là: DES, Triple DES  

    (3DES), RC4, AES… 

     DES: viết tắt của Data Encryption Standard. Với DES, bản rõ (Plaintext) được

    mã hoá theo từng khối 64 bits và sử dụng một khoá là 64 bits, nhưng thực tế thì

    chỉ có 56 bits là thực sự được dùng để tạo khoá, 8 bits còn lại dùng để kiểm tra

    tính chẵn, lẻ. DES là một thuật toán được sử dụng rộng rãi nhất trên thế giớ i.

    Hiện tại DES không còn được đánh giá cao do kích thước của khoá quá nhỏ 56

     bits, và dễ dàng bị phá vỡ. 

     Triple DES (3DES): 3DES cải thiện độ mạnh của DES bằng việc sử dụng một

    quá trình mã hoá và giải mã sử dụng 3 khoá. Khối 64- bits của bản rõ đầu tiên sẽ

    được mã hoá sử dụng khoá thứ nhất. Sau đó, dữ liệu bị mã hóa được giải mã

     bằng việc sử dụng một khoá thứ hai. Cuối cùng, sử dụng khoá thứ ba và kết quả

    của quá trình mã hoá trên để mã hoá. C = EK3(DK2(EK1(P))).

    P = DK1(EK2(DK3(C)))

      AES: Viết tắt của Advanced Encryption Standard, được sử dụng để thay thế cho

    DES. Nó h trợ độ dài của khoá từ 128 bits cho đến 256 bits.

    Do đó hệ mã hoá khoá đối xứng có ưu điểm và nhược điểm sau: 

    a. Ưu điểm 

    Giải mã và mã hoá “nhanh” hơn hệ mã hoá khoá công khai

    b. Nhược điểm   Hệ mã hoá khoá đối xứng “không an toàn” so với hệ mã hoá khoá công khai bởi lý

    do sau:

     Người mã hoá và người giải mã phải có “chung ” một khoá. Khóa phải được giữ bí

    mật tuyệt đối, vì biết khoá này “dễ ” xác định được khoá kia và ngược lại. 

      Vấn đề thỏa thuận khoá và quản lý khóa chung là khó khăn và phức tạp. Người gửi

    và người nhận phải luôn thống nhất với nhau về khoá. Việc thay đổi khoá là rất

    khó và dễ bị lộ. Khóa chung phải được gửi cho nhau trên kênh an toàn. 

     Ngoài ra với hệ mã hoá khoá đối xứng không thể thực hiện chữ ký điện tử (sẽ đượctrình bày trong chương 2) do chỉ có một khoá chung duy nhất. Vì vậy không thể dùng

    trong giao dịch điện tử. 

    1.2.2.2 Hệ mã hoá khóa công khai 

    Hệ mã hoá khoá công khai là hệ mã hoá có khoá lập mã và khoá giải mã khác  

    nhau, biết được khoá này “khó” tính được khoá kia. 

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    14/73

    12

    Hệ mã hoá này được gọi là hệ mã hoá khoá công khai vì khoá lập mã được công

    khai (gọi là khoá công khai –  Public key), Khoá giải mã giữ bí mật (gọi là khoá riêng –  

    Private key). Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ

     biết khóa công khai. 

    Hình 1.2. Quá trình thực hiện mã hoá khoá công khai

    Quá trình truyền và sử dụng mã hoá khoá công khai được thực hiện như sau: 

      Bên gửi yêu cầu cung cấp hoặc tự tìm khoá công khai của bên nhận trên một server

    chịu trách nhiệm quản lý khoá.

      Sau đó hai bên thống nhất thuật toán dùng để mã hoá dữ liệu, bên gửi sử dụng

    khoá công khai của bên nhận cùng với thuật toán đã thống nhất để mã hoá thông

    tin được gửi đi 

      Khi nhận được thông tin đã mã hoá, bên nhận sử dụng khoá bí mật của mình để

    giải mã và lấy ra thông tin ban đầu. 

    Vậy là với sự ra đời của Mã hoá công khai thì khoá được quản lý một cách linh hoạt

    và hiệu quả hơn. Người sử dụng chỉ cần bảo vệ khoá bí mật.

    Một số hệ mã hóa khóa công khai phổ biến như RSA, Rabin, Egmal, ... 

    Do đó hệ mã hoá khoá công khai có ưu điểm và nhược điểm sau: 

    a. Ưu điểm 

      Đơn giản trong việc lưu chuyển khóa: Chỉ cần đăng ký một khóa công khai và mọi

    người sẽ lấy khóa này về để trao đổi thông tin với người đăng ký. Vì vậy không

    cần kênh bí mật để truyền khóa. 

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    15/73

    13

      Mi người chỉ cần một cặp khóa công khai –  khóa bí mật là có thể trao đổi thông

    tin với tất cả mọi người. 

      Là tiền đề cho sự ra đời của chữ ký điện tử và các phương pháp chứng thực điện tử  

    b. Nhược điểm 

    Mã hóa và giải mã chm hơn  hệ mã hóa khóa đối xứng. 

    1.3 Cở sở toán học dùng trong hệ mật mã [1]

    1.3.1 Ước chung lớn nhất, bội chung nhỏ nhất 

    Số nguyên d được gọi là ước chung   của các số nguyên a1, a2, …, an , nếu nó là

    ước  của tất cả các số đó. 

    Một ước chung d >0 của các số nguyên a1, a2, …, an, trong đó mọi ước chung của

    a1, a2, …, an đều là ước của d, thì d được gọi là ước chung lớn nhất   (UCLN) của a1, a2,

    …, an . Ký hiệu d = gcd (a1, a2, …, an) hay d = UCLN(a1, a2, …, an). Nếu gcd (a1, a2, …,an) = 1, thì các số a1, a2, …, an được gọi là nguyên tố cùng  nhau .

    Số nguyên m được gọi là bội chung  của các số nguyên a1, a2, …, an , nếu nó là bội  

    của tất cả các số đó. 

    Một bội chung m >0 của các số nguyên a1, a2, …, an, trong đó mọi  bội chung của

    a1, a2, …, an đều là bội của m, thì m được goi là bội chung  nhỏ nhất  (BCNN) của a1, a2,

    …, an. Ký hiệu m = lcm (a1, a2, …, an) hay m = BCNN (a1, a2, …, an).

    Ví dụ: Cho a =20, b =25, gcd (20, 25) = 5, lcm (20, 25) = 100.

    Hai số 20 và 13 là nguyên tố cùng nhau, vì gcd (20, 13) = 1 

    Thuật toán Euclide tìm ước chung lớn nhất 

    INPUT: Hai số nguyên không âm a và b , với a = b .

    OUTPUT: Ước số chung lớn nhất của a và b.

    1. Trong khi còn b > 0, thực hiện:

    1.1. đặt r ← a mod b, a ← b , b ← r.

    2. Cho ra kết quả (a). 

    Ví dụ: Tìm gcd (528, 234) bằng thuật toán Euclide

    Ta có bảng mô phỏng k ết quả sau:

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    16/73

    14

    a b r

    528 234

    234 60 60

    60 54 54

    54 6 6

    6 0 0

    K ết luận gcd (528, 234) = 6.

    Ta biết rằng nếu gcd (a,b) = d, thì phương trình bất định: a*x + b*y = d

    có nghiệm nguyên (x, y), và một nghiệm nguyên (x, y) như vậy có thể tìm được bởi thuật

    toán Euclide mở rộng như sau:

    Thuật toán Euclide mở rộng :

    INPUT: Hai số nguyên không âm a và b với a = b.

    OUTPUT: d = gcd (a,b) và hai số x,y sao cho a*x + b*y = d.

    1. Nếu b = 0 thì đặt d ← a , x ←1, y ← 0, và cho ra (d, x, y).

    2. Đặt x2= 1, x

    1= 0 , y

    2= 0, y

    1= 1.

    3. Trong khi còn b > 0, thực hiện:

    3.1. q←a div b, r ← a mod b, x ← x2

    - q*x1, y ← y

    2- q*y

    1.

    3.2. a ← b, b ←r, x2

    ← x1, x

    1← x , y

    2← y

    1và y

    1←y.

    4. Đặt d← a, x←x2, y← y2, và cho ra kết quả (d, x, y).

    Ví dụ: Dùng thuật toán Euclide mở rộng tính gcd (528, 234)

    Ta có bảng mô phỏng sau:  

    a b q r x y x1 y2  y1  y2 

    528 234 0 1 1 0

    234 60 2 60 1 -2 1 0 -2 1

    60 54 3 54 -3 7 -3 1 7 -2

    54 6 1 6 4 -9 4 -3 -9 7

    6 0 9 0 -39 88 -39 4 88 -9

    Ta có thể kiểm chứng lại r ằng sau mi lần thực hiện chu tr ình gồm hai lệnh 3.1 và 

    3.2, các giá tr ị x, y, r thu được luôn thoả mãn 532*x + 234*y = r. Khi k ết thúc các vòng 

    lặp (ứng với giá tr ị b = 0), thực hiện tiếp lệnh 4 ta thu được k ết quả d = 6, x = 4 và y = -9,

    cặp số (4, -9) thoả mãn: 528*4 + 234*(-9) = 6.

    528 = 2*234 + 60

    234 = 3*60 + 54

    60 = 1* 54 + 6

    54 = 9*6 + 0

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    17/73

    15

    Thuật toán Euclide tìm ước chung lớn nhất của hai số là cơ sở  trong bài toán phân

    tích một số nguyên n thành thừa số các số nguyên tố 

    1.3.2 Số nguyên tố 

    Số nguyên tố là số tự nhiên lớn hơn 1 và chỉ có hai ước là 1 và chính nó. Số nguyên tố có vai trò và ý nghĩa to lớn trong số học và lý thuyết mật mã. Bài

    toán kiểm tra tính nguyên tố của một số nguyên dương n và phân tích số n thành thừa số 

    nguyên tố là các bài toán rất được quan tâm.

    Phươ ng pháp  kiểm  tra tính  nguyên tố: Phương pháp cổ điển  và  phươ ng pháp 

    „xác suất‟.

    Phương pháp phân tích số nguyên n thành thừa số các số nguyên tố thực chất 

    là bài toán tìm ước chung lớ n nhất của hai số.Cơ sở toán học chung cho hệ mã hóa khóa công khai đó là các định lý về số

    nguyên tố như định lý Fecma, định lý Euler, định lý số dư Trung Hoa, ... 

    1.3.3 Quan hệ đồng dư  

    Tất cả các bài toán trong hệ mã hóa khóa công khai đều dùng đến quan hệ đồng dư.

    Đầu tiên ta xét khái niệm về đồng dư theo modulo. 

    Cho các số nguyên a, b, m (n > 0). Ta nói rằng a và b  “đồng dư” với nhau theo

    modulo m, nếu chia a và b cho m nhận được cùng một số dư (hoặc a –  b chia hết cho m).

    Ký hiệu: a ≡ b (mod m).

    Ví dụ: 

    23 ≡ 11 (mod 4) vì chia 23 và 11 cho 4, được cùng số dư là 3.

    Phươ ng tr ình đồng dư  tuyến tính 

    Phương trình đồng dư tuyến tính có dạng: a*x = b (mod m ) (1)

    Trong đó a, b, n là các số nguyên, m > 0, x là ẩn số. Phương trình (1) có nghiệm khi và

    chỉ khi d = gcd (a, m ) / b, và khi đó nó có đúng d nghiệm theo modulo m.

    Bây giờ ta xét hệ thống các phương trình đồng dư tuyến tính.

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    18/73

    16

    nn  ma x

    ma x

    ma x

    mod

    ...

    mod

    mod

    22

    11

     

    Ta ký hiệu: m = m1*m2*...*mk , Mi = m / mi . Ta có định lý sau đây:

    Định lý Số dư Trung HoaĐịnh lý số dư Trung Hoa là tên gọi do người phương Tây đặt cho định lý này.

     Người Trung Hoa gọi nó là bài toán Hàn Tín điểm binh. Sử ký Tư Mã Thiên viết rằng khi

    Hàn Tín điểm quân số, ông cho quân lính xếp hàng 3, hàng 5, hàng 7 rồi báo cáo số dư.

    Từ đó ông tính chính xác quân số đến từng người. 

    Gần đây, định lý số dư Trung Hoa có nhiều ứng dụng trong các bài toán về số

    nguyên lớn áp dụng vào lý thuyết mật mã. 

    Định lý: Giả sử n > 1 là số nguyên dương và m1, m2, ..., mn là n số nguyên lớn hơn

    1 đôi một nguyên tố cùng nhau. Đặt M = m1 * m2 *... * mn. Cho trước các số nguyên a1,

    a2, ..., an khi đó tồn tài duy nhất một số nguyên x (0  x < M) thoả mãn các phương trình

    đồng dư sau đây:

    nn  ma x

    ma x

    ma x

    mod

    ...

    mod

    mod

    22

    11

     

    Bản chất của bài toán Hàn Tín điểm binh là việc giải hệ phương trình đồng dư bậc

    nhất: 

    nn  ma x

    ma x

    ma x

    mod

    ...

    mod

    mod

    22

    11

     

    Hệ phương trình đồng dư nói trên có nghiệm duy nhất theo mođun 

    M = m1*m2*...*mk , trong đó m1, m2, ..., mn đôi một nguyên tố cùng nhau. Trong bài toán

    Hàn Tín n = 3 và m1 = 3, m2 = 5, m3 = 7.

    Ta xét phương trình đồng dư bậc hai có dạng đơn giản sau: x2 ≡ a (mod m)

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    19/73

    17

    Trong đó m là một số nguyên dương, a là số nguyên với gcd (a, m) =1, và x là ẩn

    số. Phương trình đó không phải bao giờ cũng có nghiệm, khi nó có nghiệm thì ta nói a là

    một thặng dư  bậc hai mod m ;

    Bây giờ ta xét việc giải phương trình đồng dư  bậc hai: x2 ≡ a (mod m) (2) 

    trong một trường hợp đặc biệt khi m = p là số nguyên tố có dạng p = 4*n +3, tức pđồng dư với 3 theo mod 4, và a là một số nguyên nguyên tố với p. Theo tiêu chuẩn Euler

    ta biết phương trình (2) có nghiệm khi và chỉ khi a(p-1)/2 ≡ 1 (mod p). Khi đó ta có:

    a(p-1)/2 ≡ a (mod p)

    a2(n+1)

     ≡ a (mod p) 

    Do đó x = ±an +1

    (mod p) là hai nghiệm của phương trình (2).

    1.3.4 Cấu trúc nhóm 

    Phần lớn các tính toán liên quan đến hệ mật mã khoá công khai và tiền điện tử,

    chúng ta thường sử dụng tập các số nguyên từ 0 tới p-1, trong đó p là số nguyên tố lớn.

     Những số này cùng với hai phép toán: phép nhân * và phép luỹ thừa sẽ tạo thành các cấu

    trúc nhóm có những tính chất quan trọng được sử dụng để mật mã và bảo mật tiền điện tử.

    1.3.4.1 Phép nhân, phép luỹ thừa, phép chia 

    Xét tập Z(p)* = {1, 2, 3, 4, ..., p-2, p-1}. Dễ nhận thấy, nếu ta nhân hai số bất kỳ

    trong tập này với nhau, sau đó lấy số dư theo modulo p, thì kết quả là một số vẫn nằmtrong tập đó. Nghĩa là Z(p)* đóng với phép nhân.

    Mặt khác, nếu ta lấy một số bất kỳ trong tệp đó, ví dụ số k, khi đó sẽ tồn tại một số

    khác, ký hiệu là k -1, sao cho k * k -1 = 1 mod p. Nghĩa là mọi số nguyên trong tập này đều

    có phần tử nghịch đảo bội (multiplicative inverse).

    Hai tính chất này khẳng định rằng Z(p)* là một nhóm với phép nhân mod p. Tương

    tự, chúng ta có thể khẳng định nó cũng là nhóm với phép luỹ thừa, vì phép luỹ thừa thự c

    chất là bội của các phép nhân 

    Ví dụ 63 = 6 * 6 * 6 ( Lưu ý: 0 được loại khỏi Z(p)*  bởi vì nó không có phần tửnghịch đảo bội. Nếu ta bổ sung 0 vào Z(p)*, thì chúng ta nhận được Z(p), chứa tất cả các

    số dư theo mod p, kể cả 0)

    Giả sử ta có Z(11)* = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}. Nếu nhân 5 với 8, chúng ta có

    5*8 = 40 ≡ 7 mod 11, tất nhiên 7  Z(11)*. Chúng ta cũng có 5 * 9 = 45 ≡ 1 mod 11, nên

    9 là nghịch đảo của 5, hoặc ngược lại. Tương tự 2 và 6 là nghịch đảo của nhau. Vậy

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    20/73

    18

    Z(11)* là đóng với phép nhân và luỹ thừa, các phần tử đều có phần tử nghịch đảo nên nó

    là một nhóm. 

    Trên tập Z(p)*, chúng ta có thể định nghĩa thêm phép   toán khác, phép chia. Chúng ta

    định nghĩa phép chia cho k , ký hiệu là „/‟ như là phép nhân với phần tử nghịch đảo của k , đó là

    k -1

    .

    Ví dụ 8 / k = 8 * k -1. Nếu k = 9 trong Z(11)*, thì 8 / 9 = 8 * 9-1 = 8 * 5 = 40 ≡ 7 mod

    11. Tương tự, 3 / 10 = 3 * 10-1 = 3 * 10 = 30 ≡ 8 mod 11.

    1.3.4.2. Phần tử sinh 

    Giả sử g là một số của Z(p)*, g được gọi là phần tử sinh (generator) mod p nếu tập

    tất cả các luỹ thừa của g tạo ra tập tất cả các phần tử của Z(p) *. Nghĩa là: {g1 mod p, g2 

    mod p, . . ., g p-1

     mod p} = Z(p)*

    Ta thấy Z(p)* = {1, 2, ... , p-1} biểu diễn cho một tập (được sắp xếp lại) các số g1, g2,

    g3

    , ... , g p-1

     được tính theo mod p. Để cho tiện lợi chúng ta có thể viết mod p ở bên ngoàicặp ngoặc đơn, hoặc có thể bỏ qua: {g1 , g2, . . ., g p-1} mod p = Z(p)* hoặc có thể viết ngắn

    gọn {g1 , g2, . . ., g p-1} = Z(p)* 

    Ví dụ, 3 là phần tử sinh của Z(7)*, bởi vì 31 = 3 mod 7, 32 = 9 ≡ mod 7 = 2, 33 = 27

    mod 7 ≡ 6, 34 = 81 mod 7 = 4, 35 = 243 ≡ mod 7 = 5, 36 = 729 ≡ mod 7 = 1. Hiển nhiên

    là {3, 32, 33, 34, 35, 36} = {1, 2, 3, 4, 5, 6} tính theo mod 7.

    Một bộ sinh theo mod p là một tập gồm k phần tử {g1, ... , gk }, trong đó các gi với i

    = 1, 2, …, k là các phần tử sinh khác nhau. 

    Ví dụ, {3, 5} là bộ sinh của Z(7)*, bởi vì cả 3 và 5 đều là phần tử sinh của Z(7) *. Dễdàng kiểm tra được số 2 không phải là phần tử sinh theo mod 7, bởi vì: {2, 2 2, 23} mod 7

    = {1, 2, 4}  Z(7)*. Nhưng tập {1, 2, 4} là tập con của {1, 2, 3, 4, 5, 6} = Z(7) *. Vậy có

    thể nói hai  phần tử sinh của nhóm con của Z(3)* theo mod 3.

    Một nhóm được sinh bởi g được gọi là nhóm có bậc q mod p nếu q là số luỹ thừa

    nhỏ nhất sao cho gq = 1 mod p. Ta xét lại hai phần tử sinh của Z(7)* là 3 và 5, bởi vì 6 là

    số luỹ thừa nhỏ nhất để 1= 36= 56 mod 7, nên Z(7)* là nhóm có bậc 6 mod 7 và không có

    số luỹ thừa nào khác có tính chất trên.

     Nói chung, với số nguyên tố q, 1 < q < p, G(q) đượ c xem như là một nhóm (hoặc

    nhóm con) bậc q mod p, nếu với phần tử sinh g, 1 < g < p, chúng ta có {g1, g2, g3, ..., gq}

    là tập con của Z(p)*.

    Giả sử g là phần tử của Z(p)* và g là phần tử sinh của Z(p)* nếu g là phần tử có bậc

    là p-1, nghĩa là g(p-1) = 1, và không có số luỹ thừa nào nhỏ để bằng 1 theo mod p.

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    21/73

    19

    Cấu trúc nhóm là cơ sở trong các tính toán số dư theo modulo trong hệ mật  mã khóa

    công khai.

    1.4. Một số hệ mã hoá khoá công khai  

    1.4.1 Hệ mã hoá khoá công khai RABIN [1]1.4.1.1. Sơ đồ

    Hệ mã hóa là bộ gồm 5 thành phần: {P, C, K, E, D}, trong đó:

    + P (Plaintext): là tập hữu hạn các bản rõ có thể; 

    + C (CipherText): là tập hữu hạn các bản mã có thể; 

    + K (Key): là tập hữu hạn các khóa có thể; 

    + E (Encyption): là tập hợp các hàm mã hóa có thể; 

    + D (Decyption): là tập các hàm giải mã có thể; 

    Với mi k   K, ta có hàm mã hóa ek : P  C và hàm giải mã dk : C  P

    sao cho dk  (ek  (x)) = x ,   x  P.

      Tạo khóa 

    Hệ mã hóa là bộ gồm 5 thành phần {P, C, K, E, D}, trong đó: 

    + P = C = Zn, trong đó n là một số nguyên Blum, tính n = p*q;

    + Chọn khóa công khai là n và b (0  b  n-1); chọn khóa bí mật là p và q;

    + Chọn p và q là hai số nguyên tố lớn khác nhau có tính chất sau: p  3 (mod 4);

    q  3 (mod 4) (tức là: p = 3 + 4*t, q = 3 + 4*m).

      Mã hóa 

    Với bản rõ x  P, định nghĩa bản mã là: y = ek  (x) = x* (x + b) (mod n).

      Giải mã 

    Với bản mã y  C, bản rõ là: x = dk  (y) =24

    2 bb y     (mod n). 

    + Đặt z = x + b/2, ta có: 

    z2  = x

     2 + b

    2/4 + 2x * b/2 = x

    2 + b

    2/4 + x * b = b

    2/4 + x * (x + b) (mod n).

    Tức là z 2 = b2/4 + y (mod n).

    + Đặt T = b 2/4 +y, ta có phương trình z 2   T (mod n), n = p * q (1)

    Phương trình (1) tương đương với hệ phương trình (2): 2

    2

    z T (mod p)

    z T (mod q)

     

      (2)

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    22/73

    20

    + Vì p, q là các số nguyên tố, nên ta có: T(p -1)/2   1 (mod p), T(q -1)/2   1 (mod q).

    + Nhân 2 vế với T ta được: T(p +1)/2  T (mod p), T(q +1)/2  T (mod q) hay ta có:(p+1)/4 2

    (p+1)/4 2

    ( T ) T mod p

    ( T ) T mod q

     

      (3)

    + Từ (2), (3) ta có hệ phương trình:(p+1)/4 2 2

    (p+1)/4 2 2

    ( T ) z

    ( T ) z

     

      (4)

    + Hệ phương trình (2) và do phương trình (1) có 4 nghiệm theo mod n nên tương ứng với

    4 hệ phương trình sau: 

    ( p 1 ) /4

    ( q 1 ) /4

    z T mod p

    z T mod q

     

     

    (p 1) /4

    (q 1) / 4

    z T mod p

    z T modq

     

     

    (p 1) /4

    (q 1) /4

    z T mod p

    z T modq

     

     

    (p 1) /4

    (q 1) / 4

    z T mod p

    z T modq

     

     

    Việc chọn giá trị nào trong 4 giá trị tìm được làm bản rõ là tùy thuộc vào những đặc

    trưng khác của bản rõ mà người giải mã nhận biết. 

    1.4.1.2. Ví dụ minh họa 

    Vận dụng sơ đồ mã hóa Rabin thực hiện ví dụ minh họa:

    + Hai số nguyên tố khác nhau: p = 7; q = 11;

    + Số nguyên Blum: n =7 * 11 = 77; b = 9;

    + Bản rõ: x = 44. 

      Tạo khóa 

    + Chọn hai số nguyên tố lớn khác nhau p, q: p 3 (mod 4), q  3 (mod 4).

      p = 7 và q = 11. Tính n = p * q = 77.

    + Chọn P = C = Zn với số nguyên Blum: n = 77.

    + Chọn b với 0  b  n-1);  b = 9.

    + Chọn khóa công khai là (n, b).

    + Chọn khóa bí mật là (p, q).

      Mã hoá 

    Giả sử mã hóa bản rõ là: x = 44.

    Bản mã là:

    y = ek (x) = x * (x + b) (mod n) = 44 * (44 + 9) mod 77 = 2332 mod 77 = 22

      Giải mã 

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    23/73

    21

    Bản mã là: y = 22. 

    Bản rõ là: x = dk (y) = 2

     b by

    4 2  mod n 

    =

    29 9

    y4 2

      mod 77

    = y 1 - 9 * 2-1  mod 77

    = y 1 - 9 * 39 mod 77

    = y 1  - 351 mod 77

    = 23  - 43 mod 77 (1)

    * Vì :2

    2   99 4 mod 77 1 mod 77

    4

     và 2 * 39 1 (mod 77) 2-1 = 39. 

    * Để giải (1) ta cần tính:  T  mod n giải phương trình: z2  T mod n

    2

    2

    z T (mod p)

    z T (mod q)

     

     

    Giải hệ phương trình trên ta được 4 nghiệm theo mod n như sau: 

    ( p 1 ) /4

    ( q 1 ) /4

    z T mod p

    z T mod q

     

      (1)

    (p 1) /4

    (q 1) /4

    z T modp

    z T modq

     

      (2)

    (p 1) /4

    (q 1) /4

    z T mod p

    z T modq

     

     (3)

    (p 1) /4

    (q 1) /4

    z T mod p

    z T modq

     

      (4)

    + Giải hệ phương trình (1)

    (1)

    ( p 1 ) /4

    ( q 1 ) /4

    z T mod p

    z T mod q

     

     

    2

    3

    z 23 mod 7

    z 23 mod11

     

       

    z 529 mod 7

    z 12.167 mod11

     

    Đặt m = 7 * 11 = 77.

    M1 = m / m1 = 77 / 7 = 11.  Phần tử nghịch đảo của 11 theo mod 7 là 2, vì: 11 * 2 1 mod 7  b1 = 2.

    M2 = m / m2 = 77 / 11 = 7.

     Phần tử nghịch đảo của 7 theo mod 11 là 8, vì: 7 * 8 1 mod 11  b2 = 8.

     Nghiệm của hệ này là: 

    z  (a1 * M1 * b1 + a2 * M2 * b2) mod m với: a1 = 529; a2 = 12.167

     (529 * 11 * 2 + 12.167 * 7 * 8) mod 77

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    24/73

    22

     (11 * 638 + 681 * 352) mod 77

     [(11 * 638 mod 77) + (681 * 352 mod 77)] (mod 77)

     11 + 56 (mod 77)

     67

    + Giải hệ phương trình (2) 

    (2)

    (p 1) /4

    (q 1) /4

    z T mod p

    z T mod q

     

     

    z 529 mod 7

    z 12.167 mod11

     

     Nghiệm của hệ này là: 

    z  a1 * M1 * b1 + a2 * M2 * b2 (mod m) với: a1 = 529; a2 = -12.167

     529 * 11 * 2 + (-12.167) * 7 * 8 (mod 77)

     11 * 638 –  681 * 352 (mod 77)

     [(11 * 638 mod 77) - (681 * 352 mod 77)] (mod 77)

     11 - 56 (mod 77)

     - 45 (mod 77)

     32 (vì: -45 = 77 * (-1) + 32)

    + Giải hệ phương trình (3)

    (3)

    (p 1) /4

    (q 1) /4

    z T modp

    z T modq

     

     

    z 529 mod 7

    z 12.167 mod11

     

     Nghiệm của hệ này là:

    z a1 * M1 * b1 + a2 * M2 * b2 (mod m) với: a1 = -529; a2 = 12.167  (-529) * 11 * 2 + 12.167 * 7 * 8 (mod 77)

     -11 * 638 + 681 * 352 (mod 77)

     [(681 * 352 mod 77)] - (11 * 638 mod 77)] (mod 77)

     (56 - 11) (mod 77)

     45 (mod 77)

      45

    + Giải hệ phương trình (4) 

    (4)

    (p 1) / 4

    (q 1) / 4

    z T modp

    z T modq

     

       

    z 529 mod7

    z 12.167 mod11

     

     Nghiệm của hệ này là:

    z a1 *M1 * b1 + a2 * M2 * b2 (mod m) với: a1 = -529; a2 = -12.167

     (-529) * 11 * 2 + (-12.167) * 7 * 8 (mod 77)

     -11 * 638 –  681 * 352 (mod 77)

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    25/73

    23

     - [(11 * 638 mod 77) + (681 * 352 mod 77)] (mod 77)

     -(11 + 56) (mod 77)

     - 67 (mod 77)

      10 ( vì: -67 = 77 * (-1) + 10)

    Như vậy: 

    + Với z = 67 thì x = 23  - 43 mod 77 = 67 –  43 mod 77 = 24

    + Với z = 32 thì x = 23  - 43 mod 77 = 32 –  43 mod 77 = 66

    + Với z = 45 thì x = 23  - 43 mod 77 = 45 –  43 mod 77 = 2

    + Với z = 10 thì x = 23  - 43 mod 77 = 10 –  43 mod 77 = 44

    Việc chọn giá trị nào trong trong 4 giá trị tìm được làm bản rõ là tùy thuộc vào

    những đặc trưng khác của bản rõ mà người giải mã nhận biết (thí dụ bản rõ dưới dạng số

     phải có biểu diễn nhị phân là mã của một văn bản tiếng Anh thông thường). Trong trường

    hợp này chọn bản rõ là 44. 

    1.4.2. Hệ mã hóa khoá công khai ELGAML [2]

    1.4.2.1. Sơ đồ 

    Hệ mã hóa là bộ gồm 5 thành phần: {P, C, K, E, D}, trong đó:

    + P (Plaintext): là tập hữu hạn các bản rõ có thể; 

    + C (CipherText): là tập hữu hạn các bản mã có thể; 

    + K (Key): là tập hữu hạn các khóa có thể; 

    + E (Encyption): là tập hợp các hàm mã hóa có thể; 

    + D (Decyption): là tập các hàm giải mã có thể; 

    Với mi k   K, ta có hàm mã hóa ek : P  C và hàm giải mã dk : C  P

    sao cho dk  (ek  (x)) = x ,   x  P.

    *Tạo cặp khóa (bí mt, công khai ) ( a, h ) :

    Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là “khó” giải. Chọn

     phần tử nguyên thuỷ g  Zp*. Đặt P = Z p*, C = Z p* Z p*.Chọn khóa bí mật là a  Zp*. Tính khóa công khai h  g 

    a mod p.

    Định nghĩa tập khóa:  = {(p, g, a, h): h  g a mod p}. Các giá trị p, g, h được

    công khai, phải giữ bí mật a.

    Với Bản rõ x P và  Bản mã  y  C, với khóa k   định nghĩa: 

    * Lp mã:

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    26/73

    24

    Chọn ngẫu nhiên bí mật r  Zp-1, bản mã là y = ek (x, r) = (y1, y2). Trong đó y1=

    gr  mod p  và y2 = x * h

     r  mod p 

    * Giải mã: dk   (y1, y2) = y2 * (y1a)

    -1  mod p.

    1.4.2.2 Ví dụ minh hoạ 

    * Bản rõ x = 1299.Chọn p = 2579, g = 2, a = 765.

    Tính khóa công khai h = 2 765 mod 2579 = 949.

    * Lập mã: Chọn ngẫu nhiên r  = 853.

    Bản mã là y = (435,  2369), trong đó 

    y1 = 2853  mod 2579 = 435 

    và y2 = 1299 * 949853

     mod 2579 = 2396 

    * Giải mã:

    x = y2*  (y1a

    )-1

      mod p  = 2369 * (435765

    )-1

      mod 2579 = 1299. 

    1.4.3 Hệ mã hóa khoá công khai RSA 

      Hệ mã hóa khóa công khai được đề xuất bởi Ron Rivest, Adi Shamir và Len

    Adleman (MIT) vào năm 1978, .

      Hệ mã hóa sử dụng phương pháp mã hóa khối với mi khối là một số nguyên < n:

    Thông thường kích cỡ n là 1024 bit ≈ 309 chữ số thập phân .

    1.4.3.1 sơ đồ 

    Hệ mã hóa là bộ gồm 5 thành phần: {P, C, K, E, D}, trong đó:

    + P (Plaintext): là tập hữu hạn các bản rõ có thể; 

    + C (CipherText): là tập hữu hạn các bản mã có thể; 

    + K (Key): là tập hữu hạn các khóa có thể; 

    + E (Encyption): là tập hợp các hàm mã hóa có thể; 

    + D (Decyption): là tập các hàm giải mã có thể; 

    Với mi k  K, ta có hàm mã hóa ek : P  C và hàm giải mã dk : C  P

    sao cho dk  (ek  (x)) = x ,   x  P.

    Giả sử khối bản gốc của người gửi là M và khối bản mã của người nhận là C, quá trình

    mã hóa và giải mã RSA là: C = M e

    mod n và M = C d

    mod n

    Cả người gửi và người nhận phải biết giá trị n. Người gửi biết giá trị b và chỉ người

    nhận biết giá trị a. Đây là một thuật toán mã hóa khóa công khai với khóa công khai KU =

    {b,n} và khóa riêng KR = {a,n}.

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    27/73

    25

      Tạo cặp khóa (bí mt, công khai ) ( a, b )  :

    - Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = C = Zn 

    - Tính bí mật (n) = (p-1)*(q-1). Chọn khóa công khai b < (n), nguyên tố với (n).

    - Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b  1 (mod (n)).

    - Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b  Zn , a*b  1 (mod (n)).

    Với  Bản rõ  x  P và   Bản mã  y  C, định nghĩa: 

    * Hàm Mã hoá: y = ek  (x) = x b

      mod n

    * Hàm Giải mã: x = dk  (y) = ya  mod n

    1.4.3.2 Ví dụ minh hoạ 

    Bản rõ chữ: THPTTRUNGVUONG 

      Sinh khóa:

    + Chọn bí mật số nguyên tố p= 53, q= 61, tính n = p * q = 3233, công khai n.

    Đặt P = C = Zn , tính bí mật (n) = (p-1). (q-1) = 52 * 60 = 3120.

    + Chọn khóa công khai b  là nguyên tố với (n), tức là ƯCLN( b,(n))=1, ví dụ

    chọn b = 71.

    + Khóa bí mật a là phần tử nghịch đảo của b theo mod (n):

    a * b  1 (mod (n)). Từ a * b  1 (mod (n)), ta nhận được khóa bí mật a = 791.

      Mã hoá 

    Bản rõ số:T H P T T R U N G V U O N G

    19 07 15 19 19 17 20 13 06 21 20 14 13 06

    Chia thông điệp thành 7 khối, mi khối gồm 4 chữ số biểu diễn một số nguyên mi

    < n  {1907, 1519, 1917, 2013, 0621, 2014, 1306}

    Theo phép mã hoá: Mã hoá lần lượt từng số m i: ci = mib mod n  = mi 

    71 mod 3233.

    Mã hóa số đầu tiên m1= 1907 theo cách tính trên ta có: 

    c1 = m171

    mod 3233 = 190771

     mod 3233 = 635.

    Tiếp tục tính các số c2, ..., c9 theo cách tính tương tự như trên ta có kết quả ở cột c ilà bản mã để gửi đến người nhận: 

    Khối  1 2 3 4 5 6 7

    mi 1907 1519 1917 2013 0621 2014 1306

    ci = e(mi) 635 2823 398 2013 356 2014 2334

      Giải  mã: mi  = ci a mod n  = ci 

    791 mod 3233

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    28/73

    26

    Giải mã số đầu tiên c1 = 635 theo cách tính tr ên ta có:

    m1 = c1791

     mod 3233 = 635791

     mod 3233 = 1907

    Tiếp tục tính các số m1, ..., m7 từ các số c2, ..., c9 theo cách tính tương tự ta có bảng

    minh hoạ các số mi được giải mã từ các số ci như sau: 

    Khối  1 2 3 4 5 6 7

    ci = e(mi)  635 2823 398 2013 356 2014 2334

    mi  1907 1519 1917 2013 0621 2014 1306

    Thực hiện phép biến đổi ngược từ các số m i  thành các chui kí tự tương ứng để

    khôi phục lại thông điệp gốc ban đầu m = „THPTTRUNGVUONG‟.

    1.4.3.3 Độ an toàn 

      Độ bảo mật của RSA là cao nhờ ở mức độ khó của việc phân tích một số lớn ra các

    thừa số nguyên tố. 

     

    Để có thể giải mã cần phải có được các giá trị p, q tạo nên giá trị n.   Với các thuật toán hiện nay, thời gian cần thiết để phân tích một số lớn ra thừa số

    tăng theo hàm mũ với số đó. 

      Với n đủ lớn, việc này hoàn toàn không dễ gì ngay cả với các máy tính có tốc độ

    cực lớn. 

    Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa số nguyên tố có độ 

    dài 663 bit với phươ ng pháp phân tán trong khi khoá của RSA có độ dài từ 1024 bit đến 

    2048 bit.

     Như vậy, hệ mật mã RSA có thể coi như là an toàn. 

    1.5 Kết luận chương  

     Ngày nay vấn đề an toàn thông tin được xem là một trong những quan tâm hàng

    đầu của xã hội, có ảnh hưởng rất nhiều đến hầu hết các ngành, lĩnh vực, bao trùm toàn bộ

    các đối tượng tham gia giao dịch điện tử từ cá nhân, doanh nghiệp, tổ chức kinh tế, tổ

    chức chính trị - xã hội... An toàn thông tin có mục đích là phải tổ chức việc xử lý, ghi nhớ

    và trao đổi thông tin đảm bảo tính bí mật, toàn vn, sẵn sàng và đáng tin cậy. 

    Các giải pháp bảo mật an toàn thông tin phổ biến được biết đến hiện nay là che ,

    giấu, bảo đảm toàn vn , xác thực thông tin ; kiểm soát lối vào ra của thông tin ; Phát hiện,

    xử lý các lỗ hổng và phối hợp các giải pháp . Một trong những kỹ thuật phổ biến trong các

     phương pháp bảo mật an toàn thông tin là “che” thông tin hay còn gọi là mã hoá thông

    tin. Mã hoá thông tin có mục đích ngoại trừ những người được phép thì không ai có thể

    đọc được dữ liệu. Các hệ mã hoá dữ liệu gồm: Hệ mã hóa khóa đối xứng và Hệ mã hóa

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    29/73

    27

    khóa phi đối xứng. Một số hệ mã hoá phi đối xứng (mã hoá khoá công khai) phổ biến

    đang áp dụng hiện nay là Hệ mã hoá khoá công khai RABIN, ELGAML, RSA,.. . Trong

    đó, thuật toán RSA có đặc tính hấ p dẫn: một cặp khoá có thể cùng sử dụng cho cả hai mục

    đích đó là mã hoá (ví dụ sử dụng khi truyền một khoá đối xứng) và chữ ký số. Ví dụ nếu

    các thành viên A và B muốn truyền thông an toàn với  nhau và B có một cặp khoá RSA.

    Bằng cách sử dụng một cặp khoá, B có thể  ký một thông báo gửi cho A; B sinh ra một

    khoá riêng của B và A kiểm tra chữ ký bằng khoá công khai của  B. Vấn đề này sẽ được

    đề cập kĩ hơn ở chương tiếp theo.

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    30/73

    28

    Chương 2. Chữ ký số 

    2.1 Giới thiệu  

    Một trong những ứng dụng của kỹ thuật mã hoá khóa công khai là chữ ký số. Chữ

    ký số được phát triển và ứng dụng rộng rãi hiện nay dựa trên một số thuật toán như RSA,

    DSA, ElGamal, SHA... là cơ sở quan trọng để hình thành hạ tầng khóa công khai cho

     phép người sử dụng của một mạng công cộng không bảo mật như Internet trao đổi dữ liệu

    và tiền một cách an toàn, thông qua việc sử dụng một cặp khóa công khai và bí mật được

    cấp phát. Các khái niệm, quá trình thực hiện chữ ký số và thuật toán sử dụng trong chữ ký

    số sẽ được giới thiệu chi tiết tại phần tiếp theo. 

    2.2 Khái niệm 

    2.2.1 Khái niệm 

    Chữ ký số là mô hình sử dụng các kỹ thuật mật mã để gắn với mi người sử dụng

    một cặp khóa công k hai - 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 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ý.

    2.2.2 Sơ đồ chữ ký số [2]

    Sơ đồ chữ ký là bộ năm (P, A , K , S, V  ), trong đó:

    P là tập hữu hạn các văn bản có thể.

     A là tập hữu hạn các chữ ký có thể.

    K là tập hữu hạn các khoá có thể.

    S  là tập các thuật toán ký.

     V là tập các thuật toán kiểm thử.

    Với mi khóa k   K , có thuật toán ký Sig k   S, Sig k  : P A , có thuật toán kiểmtra chữ ký Ver k    V , Ver k  : P   A  đúng, sai, thoả mãn điều kiện sau: Với mọi x  

    P, y   A :

    Đúng, nếu y = Sig k  (x)

    Ver k  (x, y) =

    Sai, nếu y    Sig k  (x)

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    31/73

    29

    2.2.3 Các ưu điểm của chữ ký số 

    Việc sử dụng chữ ký số mang lại một số lợi điểm sau:  

      Khả năng xác định được nguồn gốc 

    Các hệ thống mật mã hóa khóa công khai cho phép mật mã hóa văn bản với khóa bí

    mật mà chỉ có người chủ của khóa biết. Để sử dụng chữ ký số thì văn bản cần phải được

    mã hóa bằng hàm băm. Sau đó dùng khóa bí mật của người chủ khóa để mã hóa, khi đó ta

    được chữ ký số. Khi cần kiểm tra, bên nhận giải mã để lấy lại chui gốc (được sinh ra qua

    hàm băm ban đầu) và kiểm tra với hàm băm của văn bản nhận được. Nếu 2 giá trị này

    khớp nhau thì bên nhận có thể tin tưởng rằng văn bản xuất phát từ người sở hữu khóa bí

    mật. Tất nhiên là chúng ta không thể đảm bảo 100% là văn bản không bị giả mạo vì hệ

    thống vẫn có thể bị phá vỡ. Vấn đề xác thực đặc biệt quan trọng đối với các giao dịch tài

    chính. Ví dụ: Một chi nhánh ngân hàng gửi một gói tin về trung tâm dưới dạng (a,b), trong

    đó a là số tài khoản và b là số tiền chuyển vào tài khoản đó. Một kẻ lừa đảo có thể gửi

    một số tiền nào đó để lấy nội dung gói tin và truyền lại gói tin thu được nhiều lần để thu

    lợi (tấn công truyền lại gói tin). 

      Tính toàn vn 

    Cả hai bên tham gia vào quá trình thông tin đều có thể tin tưởng là văn bản không bị

    sửa đổi trong khi truyền vì nếu văn bản bị thay đổi thì hàm băm cũng sẽ thay đổi và lậptức bị phát hiện. Quá trình mã hóa sẽ ẩn nội dung của gói tin đối với bên thứ 3 nhưng

    không ngăn cản được việc thay đổi nội dung của nó.

    Ví dụ: tiếp tục ví dụ như ở trên, một kẻ lừa đảo gửi 1.000.000 đồng vào tài khoản của

    a, chặn gói tin (a,b) mà chi nhánh gửi về trung tâm rồi gửi gói tin (a,b3 ) thay thế để lập

    tức trở thành triệu phú. 

     Nhưng đó là vấn đề bảo mật của chi nhánh đối với trung tâm ngân hàng không hẳn

    liên quan đến tính toàn vn của thông tin gửi từ người gửi tới chi nhánh, bởi thông tin đã

    được băm và mã hóa để gửi đến đúng đích của nó tức chi nhánh, vấn đề còn lại vấn đề

     bảo mật của chi nhánh tới trung tâm của nó.

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

    Trong giao dịch, một bên có thể từ chối nhận một văn bản nào đó là do mình gửi. Để

    ngăn ngừa khả năng này, bên nhận có thể yêu cầu bên gửi phải gửi kèm chữ ký số với văn

     bản. Khi có tranh chấp, bên nhận sẽ dùng chữ ký này như một chứng cứ để bên thứ ba

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    32/73

    30

    giải quyết. Tuy nhiên, khóa bí mật vẫn có thể bị   lộ và tính không thể phủ nhận cũng

    không thể đạt được hoàn toàn. 

    2.2.4 Quá trình thực hiện chữ ký số khóa công khai 

    Chữ ký số dựa trên nền tảng mật mã hóa khóa công khai. Để có thể trao đổi thôngtin trong môi trường này, mi người sử dụng có một cặp khóa: một công khai và một bí

    mật. Khóa công khai được công bố rộng rãi còn khóa bí mật phải được giữ kín và khó có 

    thể tìm được khóa bí mật trong thời gian chấp nhận được.

    Toàn bộ quá trình gồm 3 thuật toán: 

      Thuật toán tạo khóa bí mật, khoá công khai

      Thuật toán tạo chữ ký số bằng khoá bí mật 

     

    Thuật toán kiểm tra chữ ký số bằng khóa công khai

    H ình 2.1. Sơ đồ mô tả quá trình ký và gửi các tệp văn bản 

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    33/73

    31

    Hình 2.2. Sơ đồ mô tả quá trình nhận các tệp văn bản

    Xét ví dụ: B muốn gửi thông tin cho A và muốn A  biết thông tin đó thực sự do chính

    B gửi. B gửi cho A bản tin kèm với chữ ký số. Chữ ký này được tạo ra với khóa bí mật

    của B. Khi nhận được bản tin, A kiểm tra sự thống nhất giữa bản tin và chữ ký bằng thuậttoán kiểm tra sử dụng khóa công khai của B. Bản chất của thuật toán tạo chữ ký đảm bảo

    nếu chỉ cho trước bản tin, rất khó tạo ra được chữ ký của B nếu không biết khóa bí mật

    của B. Nếu phép thử cho kết quả đúng thì A có thể tin tưởng rằng bản tin thực sự do B

    gửi. 

    2.3 Hàm băm [2, 6]

    2.3.1 Khái niệm 

     Hàm băm  là thuật toán không dùng khóa để mã hóa  (ở đây dùng thuật ngữ

    “băm” thay cho “mã hóa”), nó có nhiệm vụ băm tài liệu và cho kết quả là một giá trị

    “băm” có kích thước cố định . 

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    34/73

    32

    Hình 2.3. Minh họa hàm băm

    2.3.2 Các hàm băm thông dụng 

    Các hàm băm dòng MD (MD2, MD4, MD5) do Rivest đề xuất. Giá trị băm theo

    các thuật toán này có độ dài cố định là 128  bit. Hàm băm MD4 đưa ra năm 1990. Một

    năm sau phiên bản mạnh hơn là MD5 cũng được đề xuất.

    Hàm băm an toàn SHA, phức tạp hơn nhiều, cũng dựa trên phương pháp tương

    tự, được công bố trong Hồ sơ Liên bang năm 1992. Năm 1993  được chấp nhận làm tiêu

    chuẩn của Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST). Giá trị băm theo thuật toánnày có độ dài cố định là 160 bit.

    2.3.2.1 Thuật toán hàm băm MD5 

    a. Thuật toán hàm băm MD4

    Input : Thông điệp là xâu a có độ dài b bit.

    Output : Bản băm, đại diện cho thông điệp gốc, độ dài cố định 128 bit.

    a). Tóm tắt thuật toán 

     Bước 1:  Khởi tạo các thanh ghi 

    Có 4 thanh ghi để tính toán nhằm đưa ra các đoạn mã: A, B, C, D. Đại diện thôngđiệp được xây dựng như sự kết nối của các thanh ghi. Mi thanh ghi có độ dài 32 bit. Các

    thanh ghi này được khởi tạo bằng giá trị dạng hecxa.

    word A := 67 45 23 01  word   B := ef cd ab 89

    word   C := 98 ba dc fe word   D := 10 32 54 76 

     Bước 2: 

    + Tạo “Thông điệp đệm” M cho xâu  a.

    + Chia mảng M thành các khối 512 bit, đưa từng khối 512 bit vào mảng T[j].

    + Mi lần xử lý một khối 512 bit (16 word ), lặp lại  N/16 lần. 

     b. Thuật toán hàm băm MD5 

    - MD5 (Message-Digest algorithm 5)  là một hàm băm mật mã đượ c sử dụng phổ 

     biến, đượ c thiết k ể bởi Giáo sư Ronald L. Rivest tại trường MIT vào năm 1991 để  thay

    thế cho hàm băm trước đó là MD4 (1990). Là một chuẩn Internet (RFC 1321), MD5 đã

    được dùng trong nhiều ứng dụng bảo mật và cũng được dùng phổ biến để kiểm tra tính

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    35/73

    33

    toàn vn của tập tin. Cũng như các hàm băm khác như MD4 và SHS (Secure Hash

    Standard), MD5 là phương pháp có ưu điểm tốc độ  xử  lý rất nhanh, thích hợ  p với các

    thông điệp dài và cho ra giá trị  băm dài 128 bit. 

    - Trong MD5, thông điệp ban đầu X sẽ đượ c mở  r ộng thành dãy bit X có độ dài là

     bội của 512. Dãy bit X gồm các thành phần đượ c sắ p thứ tự như sau: Dãy bit X ban đầu,

    một bit 1, dãy d bit 0 (d được tính sao cho dãy X cuối cùng là bội của 512), dãy 64 bit l 

     biểu diễn chiều dài của thông điệp. Đơn vị xử lý trong MD5 là các từ 32- bit, nên dãy bit

    X ở  trên sẽ đượ c biểu diễn thành dãy các từ X[i] 32-bit sau: 

    X=X[0] X[1] X[2] …X[N−1] , vớ i N là bội của 16.

    Dưới đây là các ví dụ mô tả các kết quả sau khi thực hiện hàm băm MD5.

    - MD5("xin chao") = 2201c07c37755e663c07335cfd2f44c6

    Chỉ cần một thay đổi nhỏ (chẳng hạn viết hoa chữ x thành X) cũng làm thay đổi hoàn

    toàn kết quả trả về :

    - MD5("Xin chao") = e05c1d9f05f5b9eb56fe907c36f469d8

    Thuật toán cũng cho kết quả đối với chui rng :

    - MD5(" ") = d41d8cd98f00b204e9800998ecf8427e

    c. Phương pháp MD5 có những ưu điểm sau so với phương pháp MD4 

    - Thay vì có 3 chu kỳ biến đổi như trong MD4, MD5 bổ sung thêm chu kỳ thứ 4 để 

    tăng mức độ an toàn. -  Trong mi thao tác của từng chu k ỳ, MD5 sử dụng hằng số ti phân biệt, trong khi

    MD4 sử dụng hằng số chung cho mọi thao tác trong cùng chu kỳ biến đổi.

    - Hàm G ở  chu k ỳ 2 của MD4: G(X,Y,Z) = ((X Z) (X Y)  (Y   Z  )) đượ c thay

    thế bằng G(X,Y,Z) = (X Z) (Y (   Z  )) để giảm tính đối xứng.

    - Mi bướ c biến đổi trong từng chu k ỳ  chịu ảnh hưở ng k ết quả  của bướ c biến đổi

    trước, vì vậy làm tăng nhanh tốc độ của hiệu ứng lan truyền (avalanche).

    - Các hệ số dịch chuyển xoay vòng trong mi chu k ỳ đượ c tối ưu hóa nhằm tăng tốc

    độ hiệu ứng lan truyền. Ngoài ra, mi chu k ỳ sử dụng 4 hệ số dịch chuyển khác nhau. 

    - Lý do MD5 đượ c thiết k ế thay thế cho MD4 là vì các phân tích chỉ ra r ằng phương

     pháp MD4 có vẻ  không an toàn. Den Boer và Bosselaers đã chỉ  ra các điểm yếu trong

    MD4 trong một bài báo được đăng vào năm 1991và một tấn công xung đột đầu tiên đượ c

    tìm thấy bởi Han Dobbertin vào năm 1996 .

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    36/73

    34

    - Tuy nhiên, các n lực tấn công, phân tích của các nhà nghiên cứu cho thấy MD5

    cũng không còn an toàn và cần được thay thế bằng một thuật toán băm khác như các công

     bố của Den Boer và Bosselaers năm 1993; của Hans Dobbertin năm 1996; của nhóm tác

    giả Xiaoyun Wang, Dengguo Feng, Xuejia Lai, và Hongbo ngày 19/8/2004; của Arjen

    Lenstra, Xiaoyun Wang, và Benne de Weger ngày 1/3/2005; và của Vlastimil Klima, … 

    2.3.2.2 Hàm băm SHS  / SHA

    - SHS (Secure Hash Standard) là chuẩn gồm tậ p hợp các thuật toán băm mật mã an

    toàn (Secure Hash Algorithm –  SHA) như SHA-1, SHA-224, SHA-256, SHA-384, SHA-

    512 do NIST( viện công nghệ quốc gia Mỹ) và NSA(  National Security Agency/Central

    Security Service, viết tắt NSA/CSS: cơ quan an ninh quốc gia Hoa K ỳ/ Cục an ninh Trung

    ương) xây dựng.

    - Chuẩn hàm băm SHA phức tạp và chậm hơn dòng MD. SHA được thiết kế để chạy

    trên máy kiến trúc endian lớn hơn là trên máy endian nhỏ. SHA tạo ra bản tóm lược thông

    điệp có kích thước 160 bit, sử dụng 5 thanh ghi 32 bit. 

     INPUT : Thông điệp (văn bản) có độ dài tùy ý 

    OUTPUT  : Bản băm, đại diện cho thông điệp gốc, độ dài cố định 160 bit 

    - Phương pháp SHA-1 (cũng như SHA-0) được xây dựng trên cùng cơ sở  với phương

     pháp MD4 và MD5. Tuy nhiên, phương pháp SHA-1 sử dụng trên hệ thống Big-endian(

    lưu tr ữ các byte đầu tiên quan tr ọng nhất) thay vì Little-endian(lưu tr ữ các byte đầu tiên it

    quan tr ọng) (endian chính là đượ c đề cập đến tr ật tự của cácđịa chỉ cá nhân phụ trong các 

    đại diện của một mục dữ liệu lớn hơn và được lưu trữ trong bộ nhớ   bên ngoài (hoặc đôi

    khi gửi đi trên một k ết nối nối tiế p)) như phương pháp MD4 và MD5. Ngoài ra, hàm băm

    SHA-1 tạo ra thông điệp rút gọn k ết quả có độ dài 160 bit nên thường đượ c sử dụng

    - Phương  pháp SHA-1 giống vớ i MD5 (cải tiến từ MD4) nhưng thông điệp tóm tắt

    đượ c tạo ra có độ dài 160 bit. Dưới đây là một số điểm so sánh giữa MD5 và SHA-1:

      Giống như MD5, SHA-1 cũng thêm chu kỳ  thứ 4 để tăng mức độ an toàn

    cho thuật toán. Tuy nhiên, chu kỳ 4 của SHA-1 sử dụng lại hàm f của chu k ỳ thứ 

    2.

      Trong SHA-1, 20 bướ c biến đổi trong cùng một chu k ỳ sử dụng cùng một

    hàng số K[t] . Trong khi đó, mi bướ c biến đổi trong cùng một chu k ỳ của MD5

    sử dụng các hằng số khác nhau. 

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    37/73

    35

      So với MD4, hàm G trong MD5 đượ c thay thế thành hàm mới để làm giảm

    tính đối xứng. Trong khi SHA-1, hàm G trong SHA-1 vẫn giữ  lại hàm G của

    MD4.

      Cả MD5 và SHA-1, mi bướ c biến đổi trong từng chu k ỳ chịu ảnh hưở ng

    k ết quả của biến đổi trước, vì vậy làm tăng nhanh tốc độ của hiệu ứng lan truyền.

    Hình 2.4: Đặc điểm của các thuật toán băm SHA 

    2.4 T huật toán chữ ký số [1, 2, 7]

    2.4.1 Thuật toán chữ ký RSA 

    2.4.1.1 Sơ đồ 

    Bước 1. Tạo cặp khóa (bí mt, công khai ) (a, b) : 

    Input 2 số nguyên tố lớn phân biệt p và q 

    Output Cặp (n,b) là khóa công khai 

    Cặp (n,a) là khóa bí mật 

    Thuật toán 

    - Chọn bí mật số nguyên tố lớn p và q 

    - Tính n = p * q, công khai n, đặt P = C = Zn. 

    - Tính bí mật (n) = (p-1) * (q-1).

    - Chọn khóa công khai b< (n),nguyên tố với (n).

    - Khóa bí mật a là phần tử nghịch đảo của b theo mod (n) tức là a * b  1 (mod (n)).

    - Tập cặp khóa (bí mật, công khai) K  = (a, b) / a, b  Zn , a * b  1(mod(n)).

    Bước 2. Ký số :

    Chữ ký trên x  P là y = Sig k  (x) = x a (mod n), y   A .  (R1)

    Bước 3. Kiểm tra chữ ký :

  • 8/18/2019 Chu Ky So Va Ung Dung Trong Quan Ly Van Ban Dien Tu-xemtailieu[Dot]Com

    38/73

    36

    Verk   (x, y) = đúng  x  y b (mod n). (R2)

    2.4.1.2 Ví dụ minh hoạ 

    Bước 1. Tạo khoá (bí mật, công khai) 

    - Chọn 2 số nguyên tố p = 11, q = 3.

    1. 

    n = p * q = 11 * 3 = 332.  (n) = (p-1) * (q-1) = 10 * 2 = 20

    3.  Chọn b = 3

    gcd (b, (n)) = gcd (3, 20) = 1

    4.  Tính a:

    4.1. (n) = (b * a - 1) * k

    4.2. Tập các ước số của (n) là k i = 1, 2, 4, 5, 10, 20.

    Khi k i = 1 => a = 7

    Khi k i= 4, 10 => a không đồng dư với b theo mod (n) => loại 

    Khi K i = 2, 5, 20 => a không nguyên => loại 

    5. Khoá công khai = (n, b) = (33, 3)

    Khoá bí mật = (n, a) = (33, 7).

    Bước 2. Ký số 

    Chữ ký trên x = 3

    y = Sig k  (x) = x a (mod n) = 3

    7 mod 33 = 837 mod 33 = 12 , y   A . 

    Bước 3. Kiểm tra chữ ký :

    Verk   (x,y) = đúng  x  y b (mod n)

     3  123 (mod 33). .

    2.4.1.3 Độ an toàn của chữ ký RSA 

    * Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký RSA: 

    Bài toán tách số nguyên n thành tích của 2 số nguyên tố: n