CHƯƠNG 1: TỔNG QUAN VỀ MÃ HÓA DỮ LIỆU 1. Khái niệm về mã hóa dữ liệu 1. Giới thiệu chung về mã hóa dữ liệu 1. Khái niệm mã hóa dữ liệu Mã hóa là phương pháp để biến đổi thông tin (phim, hình ảnh, văn bản.) từ định dạng bình thường sang dạng thông tin không thể hiểu được nếu không có phương tiện giải mã.
Mã hóa dữ liệu ngăn chặn được các việc sau: Nghe trộm và xem lén dữ liệu. Giả mạo thông tin. Chỉnh sửa và đánh cắp lén dữ liệu. Sự gián đoạn các dịch vụ mạng.
Mã hóa không thể ngăn chặn thông tin bị đánh cắp nhưng thông tin được lấy về không dùng được, không dùng được vì dữ liệu ban đầu đã biến sang dạng khác. Một số thuật ngữ mã hóa dữ liệu Văn bản gốc: là loại văn bản bình thường còn nguyên chưa được mã hóa, ai cũng có thể đọc được và hiểu được. Văn bản mã hóa: Là loại văn bản gốc đã được mã hóa, chỉ có người nhận và người gửi mới đọc và hiểu được. Mã hóa: Là quá trình biến đổi thông tin ban đầu (có thể hiểu được) thành dạng không thể hiểu được nhằm mục đích giữ bí mật thông tin nào đó.
Giải mã: Là quá trình ngược lại với mã hóa, nhằm khôi phục từ dữ liệu đã mã hóa về dữ liệu ban đầu. 4 Thuật toán mã hóa: Là tập hợp các giao thức hay cách để chuyển đổi một văn bản gốc sang văn bản mã hóa. Để đảm bảo tính an toàn của thuật toán thì thuât toán giải mã phải được bảo mật chỉ cho người nhận biết. Khóa bí mật: Là khóa duy nhất được người dùng để lấy lại thông tin ban đầu đã được mã hóa và khóa này được giữ bí mật.
Khóa công khai: Là loại khóa tất cả mọi người ai cũng biết, không cần phải bảo mật, với khóa này người dùng có thể trao đổi thông tin bí mật với nhau Sản phẩm mật mã: Bao gồm các hệ thống thiết bị, mạch tích hợp và các phần mềm mã hóa chuyên dụng có tích hợp các thuật toán mã hóa được thiết kế để bảo vệ thông tin giao dịch điện tử và lưu trữ ở dạng số. Tầm quan trọng của mã hóa dữ liệu Nó đóng vai trò rất lớn trong phát triển ngành công nghệ thông tin cũng như các ngành khác. Vai trò lớn nhất của mã hóa dữ liệu là giúp truyền thông tin đến người nhận không bị rò rĩ. Mã hóa dữ liệu là một công cụ thiết yếu của bảo mật thông tin.
Mã hóa đáp ứng được các nhu cầu về tính bảo mật, tính chứng thực, tính không từ chối của hệ truyền tin. Mã hóa dữ liệu giúp người dùng bảo vệ thông tin cá nhân của mình cũng như thông tin gửi đến người khác. Tiêu chuẩn để đánh giá hệ mã hóa 1. Độ an toàn của thuật toán Độ an toàn của thuật toán được đặc trưng cho khả năng của hệ mật mã chống lại sự thám mã.
5 Nguyên tắc đầu tiên trong mã hóa dữ liệu là bất kì một thuật toán mã hóa nào cũng đều có thể bị phá vỡ. Do đó, không có thuật toán mã hóa được xem là an toàn mãi mãi. Mỗi thuật toán mã hóa đều có những độ phứt tạp khác nhau và cho những độ an toàn khác nhau. Độ an toàn của thuật toán dựa vào các nguyên tắc sau: Nếu chi phí để giải mã một khối lượng thông tin lớn hơn giá trị của khối lượng thông tin đó được tạm coi là an toàn.
Nếu thời gian để phá vỡ thuật toán là quá lớn thì thuật toán đó được tạm coi làm an toàn. Nếu lượng dữ liệu cần thiết để phá vỡ thuật toán là quá lớn so với dữ liệu đã được mã hóa thì thuật toán đó được tạm coi là an toàn. Độ an toàn của thuật toán ở trên chỉ đúng với môt thời điểm nhất định nào đó, luôn luôn có những khả năng cho phép những người phá mã tìm ra cách để phá vỡ thuật toán. Trên thực tế, có thể xây dựng hệ mã hóa có độ an toàn tuyêt đối nhưng nó rất khó cho việc sử dụng và chi phí rất cao.
Tốc độ mã hóa và giải mã Tốc độ mã hóa và giải mã thuật toán luôn là tiêu chí đầu tiên để người ta lựa chọn một thuật toán để mã hóa dữ liệu. Một hệ mật tốt là hệ mật có tốc độ mã hóa và giải mã nhanh. Phân phối khóa Phân phối khóa là một trong những nhân tố quan trọng quyết định độ an toàn của thuật toán. Nó thể hiện ở hai khía cạnh: Phân phối khóa công khai nhưng đảm bảo tính mật.
Sử dụng khóa công khai để phân phối khóa bí mật, khóa bí mật để mã hóa dữ liệu. 6 Một hệ mật mã hiện đại nào hiện nay đều phụ thuộc vào khóa, nó được truyền bí mật hay công khai. Hệ mật có khóa công khai sẽ có chi phí rẻ hơn hệ mật mã khóa bí mật. Phân phối khóa cũng là một trong các tiêu chí để người dùng lựa chọn thuật toán để mã hóa dữ liệu.
Phân loại các thuật toán mã hóa dữ liệu 1. Phân loại theo phương pháp 1. Mã hóa hai chiều: Bao gồm mã hóa đối xứng và mã hóa bất đối xứng. Mã hóa đối xứng Mã hóa đối xứng (mã hóa khóa bí mật) là phương pháp mã hóa hai chiều.
Mã hóa đối xứng sử dụng khóa giải mã và khóa mã hóa là như nhau. Để sử dụng được mã hóa đối xứng thì hai bên mã hóa và giải mã phải thống nhất với nhau về cơ chế giải mã cũng như mã hóa, nếu không có công việc này thì hai bên không thể giao tiếp nói chuyện với nhau. Đối với mã hóa đối xứng, việc truyền - nhận hai bên được tiến hành phải thực hiện theo hai bước sau: Đầu tiên bên gửi và bên nhận bằng cách nào đó phải thỏa thuận khóa bí mật được dùng để mã hóa và giải mã. Vì chỉ cần biết được khóa này thì kẻ thứ ba có thể giải mã được thông tin nên thông tin này phải được bí mật truyền đi.
Sau đó bên gửi sẽ dùng một thuật toán mã hóa với khóa bí mật tương ứng để mã hóa dữ liệu sắp được truyền đi. Khi bên nhận nhận được sẽ dùng chính khóa bí mật đó để giải mã dữ liệu. Vấn đề lớn nhất của mã hóa đối xứng làm sao để thỏa thuận khóa bí mật giữa bên nhận và bên gửi, vì nếu truyền khóa này từ bên gửi sang bên nhận mà không dùng một biện pháp bảo vệ nào thì kẻ thứ ba có thể dễ dàng 7 lấy được khóa bí mật này. Và nếu điều này xảy ra thông tin sẽ không được an toàn nữa.
Vậy nên khóa bí mật này phải được truyền bí mật. Mã hóa đối xứng có thể chia thành hai loại: Mật mã khối: Là mã hóa tác động trên bản rõ theo từng nhóm bít. Từng nhóm bít này thường được gọi là khối (block).Từng khối dữ liệu trong văn bản ban đầu được thay thế 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, kích thước chung của một block là 64 bits.
Các thuật toán mã hóa này thường dùng cho những dữ liệu có độ dài biết trước. Mật mã dòng: Là mã hóa tác động trên bản rõ theo từng bit một. Dữ liệu của văn bản ban đầu được mã hóa theo từng bit một. Các thuật toán mã hóa theo từng bước một này có tốc độ nhanh hơn các thuật toán mã hóa khối và nó thường được áp dụng để mã hóa dữ liệu không biết độ dài trước.
Các thuật toán mã hóa đối xứng thường gặp là: DES, AES, RC4. Mã hóa bất đối xứng Mã hóa bất đối xứng (mã hóa khóa bí mật) là phương pháp mã hóa một chiều. Mã hóa bất đối xứng sử dụng khóa mã hóa và khóa giải mã là khác nhau. Tất cả mọi người đều có thể biết khóa công khai và có thể lấy khóa công khai này để mã hóa thông tin nhưng chỉ có người nhận nắm giữ khóa bí mật nên chỉ người nhận mới có thể giải mã được thông tin và lấy lại được thông tin ban đầu.
Để thực hiện mã hóa bất đối xứng thì phải qua các bước sau: Bên nhận phải tạo ra một cặp khóa. Bên nhận sẽ giữ lại khóa bí mật và truyền cho bên gửi khóa công khai. Vì khóa công khai này được công khai nên không cần bảo mật. 8 Bên gửi trước khi gửi sẽ dùng thuât toán mã hóa bất đối xứng mã hóa với khóa là khóa công khai từ bên nhận.
Bên nhận sẽ giải mã dữ liệu với khóa là khóa bí mật đã được gửi trước đó để lấy lại dữ liệu ban đầu. Hạn chế lớn nhất của phương pháp mã hóa bất đối xứng là tốc độ mã hóa và giải mã chậm, nếu dùng để mã hóa dữ liệu truyền nhận sẽ mất rất nhiều chi phí và thời gian. Vì những hạn chế đó, người ta thường dùng mã hóa bất đối xứng để truyền khóa bí mật giữa bên gửi và bên nhận, và có thể dùng khóa bí mật bên nhận và trao đổi với nhau qua mã hóa đối xứng. Thuật toán mã hóa bất đối xứng thường gặp là: RSA.
Mã hóa một chiều Là phương pháp mã hóa dữ liệu chuyển một chuỗi thông tin thành một chuỗi đã được mã hóa có độ dài nhất định mà ta không có bất kỳ cách nào để khôi phục chuỗi đã được mã hóa về lại chuỗi ban đầu. Trong xử lí của hàm băm, dù chuỗi đầu vào khác nhau và có độ dài khác nhau thì chuỗi băm vẫn ra độ dài nhất định và dù hai chuỗi đầu vào chỉ khác nhau vài kí tự thì chuỗi băm cho kết quả khác nhau hoàn toàn. Do đó, hàm băm dùng để kiểm tra tính toàn vẹn của dữ liệu. Các thuật toán mã hóa một chiều thường gặp như: MD4, MD5, SHA.
Mã hóa cổ điển Mã hoá cổ điển là cách đơn giản nhất, tồn lại lâu nhất trên thế giới và không cần khóa bảo mật, chỉ cần người gửi và người nhận cùng biết về thuật toán chung thì hai bên có thể giao tiếp với nhau được. Mã hóa này được xem là không an toàn, vì nếu một người thứ ba biết được thuật toán thì xem như thông tin không còn bảo mật nữa. Việc giữ bí mật thuật toán trở nên rất quan trọng và không phải ai cũng có thể giữ bí mật đó một cách trọn vẹn. Nếu thuật toán bị rò rĩ thì việc mã hóa thất bại.
Phân loại theo khóa 1.