Nội dung thực hiện gồm các bước như sau: Thiết kế một hệ thống trao đổi thông tin dạng văn bản và dạng âm thanh text chat và voice chat cho phép người sử dụng có thể trao đổi với những
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
-o0o -
Chuyên ngành: Kỹ Thuật Vô Tuyến Điện Tử Mã số ngành: 2.07.01 và 2.07.07
TP HỒ CHÍ MINH, Tháng 12 năm 2004
Trang 2LÝ LỊCH TRÍCH NGANG:
Họ và tên: Lê Trường Minh
Địa chỉ liên lạc: 115/21 Phạm Đình Hổ P6, Q6 Tp Hồ Chí Minh
QUÁ TRÌNH ĐÀO TẠO:
1994 – 2000: học Đại học, chuyên ngành Điện tử Viễn thông, tại Trường Đại học Bách Khoa Tp HCM
2000 – 2004: học Cao học, chuyên ngành Kỹ thuật Vô tuyến Điện tử tại Trường Đại học Bách Khoa Tp HCM
QUÁ TRÌNH CÔNG TÁC:
2000 đến nay: Cán bộ giảng dạy tại Phòng Máy Tính khoa Điện –Điện Tử, Trường Đại Học Bách Khoa Tp HCM
Cán bộ hướng dẫn khoa học: TS Lê Hiệp Tuyển
Cán bộ chấm nhận xét 1: TS Nguyễn Minh Hoàng
Cán bộ chấm nhận xét 2: TS Phạm Hồng Liên
Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN
THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 30 tháng 12 năm 2004
Trang 3T.p HCM, ngày 30 tháng 12 năm 2004
NHIỆM VỤ LUẬN VĂN THẠC SĨ
I- TÊN ĐỀ TÀI: BẢO MẬT THÔNG TIN THOẠI TRÊN NỀN IP
II- NHIỆM VỤ VÀ NỘI DUNG:
III- NGÀY GIAO NHIỆM VỤ: 01/07/2004
IV- NGÀY HOÀN THÀNH NHIỆM VỤ: 01/12/2004
V- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS LÊ HIỆP TUYỂN
CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM NGÀNH CN BỘ MÔN
Nội dung và đề cương luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua
Ngày tháng năm 2004
TRƯỞNG PHÒNG ĐÀO TẠO SĐH TRƯỞNG KHOA QL NGÀNH
Trang 4Lời cảm ơn
Xin gửi đến TS Lê Hiệp Tuyển lòng biết ơn sâu sắc, thầy đã tận tình hướng dẫn em trong suốt thời gian thực hiện luận văn tốt nghiệp
Xin chân thành cảm ơn các thầy cô trong khoa Điện – Điện Tử trường Đại học Bách Khoa Tp.HCM đã truyền đạt cho em những kiến thức quý báu trong quá trình học tập
Xin chân thành cảm ơn các thầy cô trong Phòng Máy Tính khoa Điện – Điện Tử trường Đại học Bách Khoa Tp HCM đã hết lòng giúp đỡ, hướng dẫn, tạo mọi điều kiện thuận lợi cho em trong mọi lĩnh vực
Xin kính gửi đến ba mẹ và những người thân lòng biết ơn vô hạn vì sự động viên và giúp đỡ về mọi mặt cho con có được kết quả ngày hôm nay
Chân thành cảm ơn bạn bè đã kề vai sát cánh, hỗ trợ tích cực, động viên giúp đỡ tôi để tôi có thể hoàn thành tốt luận văn này
Tp Hồ Chí Minh, tháng 12 năm 2004
Lê Trường Minh
Trang 5Tiếng nói đã, đang và sẽ mãi là một công cụ giao tiếp quan trọng, hữu hiệu và tự nhiên nhất của con người Giao tiếp bằng tiếng nói là nhu cầu không thể thiếu trong cuộc sống Với sự phát triển vượt bậc của công nghệ thông tin, ngày nay người ta có thể nói chuyện với những người ở cách xa mình hàng ngàn cây số thông qua mạng Internet Truyền thoại qua giao thức Internet đã và đang phát triển mạnh mẽ, việc bảo mật vì thế cũng là một vấn đề bức xúc được đặt ra
Trong luận văn này, tác giả trình bày việc bảo mật thông tin thoại qua giao thức Internet trên một ứng dụng cụ thể là: hệ thống giao tiếp (chat) Nội dung thực hiện gồm các bước như sau:
Thiết kế một hệ thống trao đổi thông tin dạng văn bản và dạng âm thanh (text chat và voice chat) cho phép người sử dụng có thể trao đổi với những thành viên trong nhóm hoặc với một cá nhân tùy chọn
Xây dựng một giải thuật bảo mật thông tin sử dụng thuật toán mã hóa dữ liệu (gọi là mã hóa nguồn) Giải thuật sẽ được sử dụng để bảo mật thông tin cho người sử dụng khi có yêu cầu
Xây dựng trên máy chủ một hệ thống quản lý các thành viên liên kết với
cơ sở dữ liệu để xác thực thông tin người dùng
Xây dựng một hệ thống cung cấp và quản lý khóa mã Hệ thống sẽ lưu trữ khóa, tạo khóa, cung cấp khóa cho người sử dụng khi có yêu cầu
Việc bảo mật hệ thống giao tiếp như trên sẽ cung cấp cho người sử dụng một môi trường giao tiếp chất lượng và an toàn
Trang 6ABSTRACT
Human voice was, is and will always be the most important, effective and natural contacting tool of man Using the voice to contact with other people is the indispensable requirement in our life With the gigantic development in the information technology, nowadays people can converse with the others in the distance of thousands of kilometers by using the internet system Voice over the internet protocol (VoIP) was and is still developing strongly, consequently its security is also an urgent matter to be solved
In this master of sciences’s essay the author presents the encryption of voice information with the internet protocol on this one concrete application: the CHAT system Following steps are comprised in the realization’s content :
Design of the text and voice chat communication system, which allows the user to communicate with the other groupmembers or with a selected individual
Set up an algorithm for the encryption of information using the enciphered algorithm for data (so-called source-encryption) This algorithm will be applied to provide crytographic protection to the information of the user on request
Build on the server one system for managing the members, who are associated with the data base for identifying the user’s information
Set up a system for supplying and managing the encryption keys This sytem will create, store the keywords and then supply them to the users
on request
The above described security contacting system will provide the users the quality and safety of a contacting environment
Trang 7Nội dung Trang
Lời cảm ơn
Chương 2: Giới thiệu đề tài 4
PHẦN II CƠ SỞ LÝ THUYẾT 8
Chương 3: Lý thuyết về VoIP 9
3.1.1 Tổng quan 9
3.1.2 Những lợi ích của VoIP 9
3.3.1 Thời gian trễ 11
Trang 84.1.1 Một số định nghĩa 16
4.1.2 Lịch sử phát triển 17
4.1.3 Các xâm nhập vào dữ liệu được mã hóa 18
4.1.4 Các đe dọa đối với một hệ thống được bảo mật 20
4.2 Phân loại hệ mật mã 24
4.2.1 Hệ mật đối xứng 24 4.2.2 Hệ mật bất đối xứng 25 4.2.3 Hệ băm 25
4.3 Hệ mật đối xứng – Mật mã khối – Thuật toán DES 26
4.3.1 Giới thiệu 26
4.3.2 Thuật toán DES 27
4.3.3 Đánh giá hiệu năng của mật mã DES 36
4.4 Các phương pháp ứng dụng mật mã khối 43
4.4.1 Giới thiệu 43
4.4.2 Mật mã ECB 43
4.4.3 Mật mã CBC 44
4.4.4 Mật mã CFB 46
4.4.5 Mật mã OFB 47
Chương 5: Các thủ tục và các chú ý trong thực tế khi sử dụng mã hóa 48
5.1 Các thủ tục 48
5.1.1 Định nghĩa thủ tục 48
5.1.2 Các loại thủ tục 49
5.1.3 Sử dụng các thủ tục để giải quyết vấn đề bảo mật 52
5.2 Phân phối và quản lý khóa mã 57
5.2.1 Quản lý khóa mã trong mật mã đối xứng 57
5.2.2 Tạo khóa 58
5.2.3 Nạp và hủy khóa phiên làm việc 60
5.2.4 Các đường phân phối khóa phiên làm việc 61
Trang 95.3.3 Quản lý khóa 66
5.3.4 Lan truyền sai 67
5.3.5 Kích thước bản mã 67
PHẦN III XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG VoIP 68
7.1.1 Tạo socket lắng nghe 71
7.1.3 Thiết lập kết nối 72
7.1.4 Pha xử lý 74
7.1.5 Kết thúc kết nối 76
7.2.1 Tạo socket 78
7.2.2 Thiết lập kết nối 78
7.2.3 Pha xử lý 80
7.2.4 Đóng kết nối 82
7.5.2 Thu âm 99
Trang 10Chương 8: Giao diện và cách sử dụng chương trình 105
Tài liệu tham khảo
Trang 11PHẦN I GIỚI THIỆU ĐỀ TÀI
Trang 12CHƯƠNG 1: GIỚI THIỆU VẤN ĐỀ
1.1 TÌNH HÌNH THỰC TIỄN
Ngày nay, máy tính là một công cụ không thể thiếu trong bất kỳ một lĩnh vực nào Cùng với thời gian, người ta không muốn sử dụng một máy tính đơn lẻ nữa mà muốn kết nối các máy này lại thành một mạng máy tính nhằm tăng khả năng làm việc, hiểu biết, trao đổi, cập nhật các thông tin … Mạng Internet ra đời và là xu hướng phát triển của thế giới Hiện nay, Internet đã trở nên rất phổ biến trên toàn thế giới Thông qua mạng Internet mọi người có thể trao đổi thông tin với nhau một cách nhanh chóng thuận tiện
Nhưng những công ty phát triển và kinh doanh trên môi trường Internet phải đối diện với một thách thức lớn là làm thế nào để bảo vệ những dữ liệu quan trọng, ngăn chặn những hình thức tấn công, truy xuất dữ liệu bất hợp pháp trên môi trường Internet Khi một người muốn trao đổi thông tin với một người hay một tổ chức nào đó thông qua mạng máy tính thì yêu cầu quan trọng là làm sao để đảm bảo thông tin không bị sai lệch hoặc bị lộ do sự xâm nhập của kẻ thứ ba Trước các yêu cầu cần thiết đó, một số giải thuật mã hóa đã dược xây dựng nhằm đảm bảo tính an toàn dữ liệu tại nơi lưu trữ, cũng như khi dữ liệu được truyền trên mạng Điển hình như các giải thuật mã hóa đối xứng (DES, TDEA, AES, …), giải thuật mã hóa công khai (RSA, Diffie-Hellman, Elliptic Curves, … )
Trong tình hình phát triển mạnh mẽ của các dịch vụ Internet, một cuộc cách mạng công nghệ trên mạng điện thoại công cộng cũng đã diễn ra Cuộc cách mạng về công nghệ này bắt đầu từ mong ước dùng một máy tính cá nhân để truyền các gói chứa tiếng nói đi qua một mạng chuyển mạch gói Đây là một ý
Trang 13tưởng đột phá dẫn đến truyền thoại qua giao thức Internet được gọi là Voice over
IP ( VoIP) Truyền thoại qua IP đã và đang phát triển nhanh chóng nhờ những lợi ích của nó Việc bảo mật VoIP vì thế cũng là một vấn đề bức xúc được đặt ra
Cùng với mạng điện thoại Internet, dịch vụ Voice Chat là một trong những ứng dụng rộng rãi nhất của VoIP Chúng ta có thể thấy rõ nhu cầu của người sử
dụng qua những dịch vụ voice chat đang nở rộ khắp nơi trong cả nước Điều này
cũng dễ hiểu bởi việc trao đổi thông tin qua lại với nhau bằng văn bản đã không còn đủ thỏa mãn nhu cầu ngày càng cao của con người Ngày nay người ta muốn được nói chuyện bằng lời nói với nhau, muốn được trao đổi thông tin, thể hiện cảm xúc bằng chính giọng nói của mình
1.2 LÝ DO CHỌN ĐỀ TÀI
Như đã đề cập ở trên, nhu cầu giao tiếp của con người là có thật và không ngừng phát triển Tuy nhiên, việc trao đổi thông tin với nhau qua giao thức Internet đã đặt ra nhiều mối e ngại cho người sử dụng Liệu rằng người mình đang trao đổi có phải thực sự là người mình muốn trao đổi hay không? Và rằng những thông tin trao đổi qua lại với nhau có bị thu chặn, bị nghe lén, bị thay đổi hay không? Những mối e ngại trên là một thách thức thực sự đối với sự phát triển của việc truyền thông tin nói chung và việc truyền thoại nói riêng qua mạng Internet
Thiết kế và bảo mật hệ thống thông tin thoại qua giao thức Internet là một đề tài được chọn nhằm đáp ứng nhu cầu sử dụng và giải quyết những e ngại nêu trên Thiết kế và bảo mật hệ thống thông tin thoại qua giao thức Internet nhằm tạo ra một môi trường chất lượng và an toàn cho người sử dụng
CHƯƠNG 2: GIỚI THIỆU ĐỀ TÀI
Trang 142.1 MỤC ĐÍCH
Có lẽ trong chúng ta ai cũng đã từng tham dự những cuộc họp, hội nghị Trong các cuộc họp đó, chúng ta gặp gỡ nhau, chúng ta có thể phát biểu trước đám đông, chúng ta có thể nói chuyện riêng rẽ với nhau, chúng ta có thể ghi chép cho nhau vài dòng Để những thông tin của cuộc họp không bị lộ ra ngoài, chúng
ta có thể giải quyết dễ dàng bằng cách ngăn ngừa những kẻ lạ mặt, không phải là thành viên Để những cuộc nói chuyện riêng rẽ với nhau không bị những người xung quanh nghe thấy chúng ta có thể nói nhỏ vào tai nhau, vào tai của người mình muốn nói chứ không phải người nào khác
Nếu chúng ta không ở gần nhau, không có cơ hôi gặp gỡ trực tiếp với nhau, vậy chúng ta có thể cùng nhau tham dự một “cuộc họp” như vậy được không? Với sự phát triển của công nghệ thông tin, việc đó là hoàn toàn có thể Chúng ta có thể tham dự một “cuộc họp” như vậy thông qua chiếc máy tính của mình Nhưng rõ ràng khi ấy, chúng ta không ở trong một không gian riêng tư với nhau, không thể nói nhỏ vào tai nhau Vậy những thông tin mà chúng ta trao đổi với nhau liệu có được đảm bảo
Đề tài này được xây dựng với mục đích tạo ra một môi trường cho phép những thành viên có thể tham gia “cuộc họp” qua chiếc máy tính của họ với sự đảm bảo an toàn về thông tin Họ cũng có thể phát biểu trước các thành viên mà không sợ thông tin bị tiết lộ ra ngoài, họ cũng có thể trò chuyện riêng tư với nhau mà không sợ người ngoài hay những thành viên khác nghe thấy Và họ cũng được bảo đảm rằng người đối thoại với họ chính là người họ mong muốn được nói chuyện dù không được nhìn thấy mặt nhau
2.2 NỘI DUNG
Trang 15Với mục đích trên, đề tài có các nội dung như sau:
Thiết kế một hệ thống trao đổi thông tin dạng văn bản và dạng âm thanh (text chat và voice chat) cho phép người sử dụng có thể trao đổi với những thành viên trong nhóm hoặc với một cá nhân tùy chọn
Xây dựng một giải thuật bảo mật thông tin sử dụng thuật toán mã hóa dữ liệu (gọi là mã hóa nguồn) Giải thuật sẽ được sử dụng để bảo mật thông tin cho người sử dụng khi có yêu cầu
Xây dựng trên máy chủ một hệ thống quản lý các thành viên liên kết với
cơ sở dữ liệu để xác thực thông tin người dùng
Xây dựng một hệ thống cung cấp và quản lý khóa mã Hệ thống sẽ lưu trữ khóa, tạo khóa, cung cấp khóa cho người sử dụng khi có yêu cầu
2.3 YÊU CẦU
Đáp ứng được thời gian thực
Thông tin nhận được phải rõ ràng, đầy đủ
Aâm thanh được mã hóa phải khác biệt so với âm thanh gốc đủ để không thể đoán được đối với tai người hoặc một công cụ nhận dạng âm thanh nào khác
Mã hóa phải đạt hiệu quả về mặt thời gian bẻ khóa
2.4 PHẠM VI NGHIÊN CỨU
Đề tài chỉ nghiên cứu thực hiện việc mã hóa ở lớp ứng dụng, không can thiệp vào những lớp thấp hơn Đề tài xoáy mạnh vào việc xác thực và bảo mật ở cấp độ hệ thống, cho phép một lượng lớn các thành viên tham gia Việc bảo mật chỉ thực hiện từ một đầu cuối đến một đầu cuối
2.5 BỐ CỤC
Trang 16Về bố cục, luận văn này được chia thành 3 phần - 9 chương, cụ thể như sau:
PHẦN 1: GIỚI THIỆU ĐỀ TÀI
Chương 1: Giới thiệu vấn đề
Chương này trình bày về tình hình thực tiễn dẫn đến lý do chọn đề tài
Chương 2: Giới thiệu đề tài
Chương này trình bày mục đích, nội dung, yêu cầu, phạm vi nghiên cứu và bố cục của đề tài
PHẦN 2: CƠ SỞ LÝ THUYẾT
Chương 3: Lý thuyết về VoIP
Chương này trình bày những lý thuyết liên quan đến VoIP
Chương 4: Lý thuyết về mật mã
Chương này trình bày những lý thuyết về các hệ mật, các thuật toán được sử dụng hoặc có liên quan đến đề tài
Chương 5: Các thủ tục và các chú ý trong thực tế khi sử dụng mã hóa
Chương này trình bày những thủ tục, những phương thức sử dụng các hệ mật mã trong thực tế
PHẦN 3: XÂY DỰNG VÀ BẢO MẬT HỆ THỐNG VoIP
Chương 6: Tổng quan
Chương này trình bày tổng thể về nhiệm vụ và những phương án thực hiện của luận văn
Chương 7: Giải pháp thực hiện
Chương này trình bày về tiến hành thực hiện luận văn
Trang 17Chương 8: Giao diện và cách sử dụng chương trình
Chương này trình bày một cách cụ thể về giao diện và cách sử dụng của chương trình
Chương 9: Đánh giá
Chương này trình bày về những kết quả đạt được của luận văn, những điểm mạnh, điểm yếu, hướng khắc phục đồng thời đề ra những hướng phát triển mới trong tương lai
Trang 18PHẦN II
CƠ SỞ LÝ THUYẾT
Trang 19CHƯƠNG 3: LÝ THUYẾT VỀ VoIP
3.1 GIỚI THIỆU VoIP
3.1.1 Tổng quan
VoIP như đã nói là việc truyền các gói chứa tiếng nói đi qua một mạng chuyển mạch gói Việc chuyển từ các dịch vụ thoại chất lượng toll sang VoIP là một điều không đơn giản tuy nhiên với sức hấp dẫn của VoIP khiến cho nó được thực hiện qua từng bước phát triển vượt bậc của công nghệ trong vài năm gần đây
Tất cả những gì nghe được kể cả lời nói của con người đều ở dạng tương tự (analog) Cho dù truyền thông tương tự là lý tưởng đối với giao tiếp con người nhưng nó vẫn không đủ mạnh và không có khả năng phục hồi nhiễu đường truyền Đối với các mẫu digital bao gồm các bit 0 và 1 thì rất dễ dàng tách biệt với các nhiễu đường truyền Một số hạn chế khác của mạng thoại truyền thống như: không thể tạo và phát triển các tính năng một cách kịp thời; số liệu, thoại và hình ảnh không thể hội tụ vì kiểu thiết kế như hiện nay không đáp ứng được; kiểu cấu trúc xây dựng để truyền thoại không đủ linh hoạt để truyền số liệu trong khi đó số liệu đã vượt qua thoại trở thành lưu lượng chính trên rất nhiều mạng… là những động lực góp phần thúc đẩy sự phát triển của VoIP
3.1.2 Những lợi ích của VoIP
Một trong những lợi ích cơ bản nhất của VoIP là tiết kiệm được tiền, đặc biệt khi kết hợp các mạng dữ liệu với thoại Sự tiết kiệm này có thể thay đổi tùy theo vị trí địa lý Ngoài ra, một hạ tầng cơ sở IP yêu cầu sự thêm bớt và thay đổi
ít hơn so với mạng thoại truyền thống cũng như bất kỳ mạng số liệu nào Sở dĩ như vậy là vì bạn có thể dùng các đặc trưng dữ liệu, ví dụ như cấu hình host động
Trang 20DHCP DHCP cho phép một thiết bị nhận lấy một địa chỉ IP một cách linh động (không cần phải cấu hình cố định một IP cho một thiết bị) Như vậy chúng ta có thể di chuyển đến bất cứ nơi đâu vẫn giữ được số điện thoại của mình cũng như chúng ta có thể di chuyển từ nơi này đến nơi khác vẫn có thể đăng nhập vào cùng server mạng
Một lợi ích khác của VoIP là khả năng cung cấp một trung tâm dịch vụ thông tin IS hỗ trợ đồng thời cho mạng thoại và mạng số liệu VoIP cho phép các hệ thống hộp thư thoại được đặt trên các platform cơ bản chuẩn Từ đó, giá thành khá rẻ bởi giá thành của 1 Mb trên một đĩa cứng bao giờ cũng thấp hơn rất nhiều
so với 1 Mb trên các hệ thống lưu trữ có định dạng đặc biệt
3.2 NHỮNG GIAO THỨC ĐIỀU KHIỂN VoIP
Các giao thức như: H323, giao thức điều khiển cổng đơn giản (SGCP), giao thức điều khiển thiết bị Internet (IPDC), MGCP, Megaco và SIP là các giao thức dùng để điều khiển VoIP
- H.323 là khuyến nghị của ITU-T với cơ sở cài đặt rộng vì nó đã được sử dụng từ lâu và không có một sự lựa chọn giao thức nào khác trước giao thức H.323 Giao thức H.323 là một khuyến nghị của ITU-T chỉ rõ các lưu lượng đa truyền thông được truyền trên mạng gói như thế nào Giao thức H.323 dùng các chuẩn hiện có để thực hiện mục đích của mình H.323 là một giao thức có phần phức tạp, được tạo ra để cho phép các ứng dụng đa truyền thông chạy trên các mạng số liệu “không tin cậy” Lưu lượng thoại chỉ là một trong số các ứng dụng
- Giao thức SGCP được phát triển từ năm 1998 để giảm chi phí các đầu cuối
do giao thức SGCP có điều khiển cuộc gọi thông minh trên một nền tập trung
Trang 21- Giao thức IDCP rất giống giao thức SGCP nhưng nó có nhiều cơ chế khác để cho những phần điều hành, quản trị, quản lý và giám sát (OAM&P) OAM&P là cơ chế cốt yếu đối với mạng truyền vì nó bao gồm việc các giao thức này được duy trì và phát triển như thế nào
- Cuối năm 1998, IETF kết hợp IPDC với SGCP và sinh ra giao thức MGCP Giao thức MGCP dựa trên giao thức SGCP có một số bổ sung thêm cho OAM&P
- Megaco giống như MGCP và có khuynh hướng trở thành tiêu chuẩn cơ bản cho việc tạo ra các sản phẩm có nhu cầu điều khiển mức thấp, tách gateway truyền thông ra khỏi tổng đài chuyển mạch mềm hay server ứng dụng
- Giao thức SIP đang được phát triển như là một giao thức trên cơ sở phương tiện, có thể cho phép các thiết bị đầu cuối trở nên thông minh hơn và cho phép các dịch vụ gia tăng nằm dưới lớp điều khiển cuộc gọi
3.3 NHỮNG YẾU TỐ QUAN TRỌNG ĐỐI VỚI VoIP
3.3.1 Thời gian trễ
Thời gian trễ được đặc tính hóa như là lượng thời gian cần thiết để tiếng nói thoát ra từ miệng người nói và đến được tai người nghe Có ba dạng trễ vốn có trong các mạng thoại ngày nay: trễ do lan truyền, trễ do nối tiếp hóa (trễ xếp hàng) và trễ do xử lý
Trễ lan truyền do tốc độ tín hiệu trong các mạng cáp Các điện tử di chuyển trong cáp đồng xấp xỉ 125.000 mile/s Một mạng cáp kéo dài liên tục qua nửa vòng trái đất có trễ lan truyền một chiều vào khoảng 70ms Mặc dù lượng trễ này hầu như không nhạy cảm với tai người nhưng trễ lan truyền trong sự kết hợp
Trang 22với trễ xử lý có thể gây ra sự giảm chất lượng thoại đến mức không thể chấp nhận được
Trễ xử lý liên quan đến nhiều yếu tố gây trễ khác nhau (đóng gói, nén, mã hóa, chuyển mạch…) và gây ra bởi các thiết bị chuyển tiếp frame qua mạng Trễ xử lý là một vấn đề lớn trong các mạng đóng gói
Trễ xếp hàng là lượng thời gian cần để đặt một bit hay một byte vào giao tiếp Trễ xếp hàng xảy ra khi có nhiều gói được gửi hơn so với số lượng mà giao tiếp có thể xử lý trong một khoảng thời gian cho trước Trong một mạng không được không được quản lý nghẽn, trễ hàng đợi có thể cộng dồn lên đến 2s dẫn đến đánh mất gói Khoảng thời gian trễ kéo dài này là không thể chấp nhận được trong gần như bất kỳ mạng điện thoại nào
3.3.2 Jitter
Jitter là sự thay đổi khoảng thời gian giữa các gói Jitter là một vấn đề
chỉ tồn tại trên các mạng dựa vào gói Trong môi trường điện thoại gói, người gửi mong đợi truyền các gói thoại một cách tin cậy vào một khoảng thời gian không đổi (một frame sau mỗi 20ms) Các gói thoại này có thể bị trì hoãn xuyên qua mạng gói và không đến được đích vào các thời điểm cách đều nhau như đã được gửi đi Độ lệch giữa thời điểm mong đợi và thời điểm nhận được gói thực sự là
jitter
Trang 23Trên hình 3.1 ta có thể thấy rằng thời lượng cần để gửi gói A và gói B là
bằng nhau (D1=D2) Gói C vấp phải một thời gian trễ trên mạng và được nhận vào thời điểm trễ hơn so với thời điểm dự định (D3 # D2) Đây là lý do tồn tại bộ
đệm Jitter, bộ đệm này che đi sự thay đổi thời gian trễ giữa các gói
Trang 24người nói Tuy nhiên, nếu nghe thấy tiếng của mình trễ đi một khoảng thời gian lớn hơn 25ms thì có thể gây ra các gián đoạn và làm mất nhịp trong một cuộc đàm thoại Tiếng dội càng lớn và càng kéo dài thì người nghe càng khó chịu
Trong các mạng gói ngày nay, chúng ta có thể xây dựng các bộ loại bỏ tiếng dội vào trong các bộ mã hoặc giải mã tiếng nói tốc độ thấp và điều hành chúng trên mỗi DSP Trong một vài hiện thực của các nhà chế tạo, sự loại bỏ tiếng dội được thực hiện bằng phần mềm Để loại bỏ tiếng dội khỏi đường dây, thiết bị sẽ tạo ra một ảnh ngược của tiếng nói (-G) và lưu giữ nó trong một khoảng thời gian Bộ triệt tiếng dội này lắng nghe âm thanh đến từ B và trừ đi G để loại bỏ bất kỳ tiếng dội nào
3.3.4 Mất gói
Sự mất gói trong các mạng số liệu là phổ biến và được lợi dụng Nhiều giao thức số liệu sử dụng sự mất gói để nhận biết được điều kiện mạng và có thể giảm số gói đang được gửi đi
Khi đưa lưu lượng đặc thù lên các mạng số liệu, đều quan trọng là phải đều khiển lượng gói bị mất trong mạng này Cisco Systems đã phát triển nhiều công cụ QoS cho phép các nhà quản trị mạng phân loại và quản lý lưu lượng qua một mạng số liệu Nếu một mạng số liệu được gia công tốt có thể hạn chế được sự mất gói đến mức tối thiểu
Sự hiện thực của một số nhà chế tạo cho phép bộ định tuyến thoại đáp ứng với sự mất gói định kỳ Nếu một gói thoại không được nhận như mong muốn (thời gian dự định thay đổi), xem như nó bị mất và gói nhận sau cùng được thay thế Bởi vì sự mất gói chỉ chiếm khoảng 20ms tiếng nói nên người nghe không chú ý đến sự khác biệt trong chất lượng thoại Chiến lược che dấu này chỉ có thể thực
Trang 25hiện nếu như chỉ có một gói bị mất Nếu nhiều gói liên tiếp bị mất, chiến lược này chỉ được chạy một lần cho đến khi nhận được gói khác Do vậy, chiến lược này được xem như một luật cho phép bỏ qua 5% gói bị mất trong toàn bộ cuộc gọi
3.3.5 Điều chế xung theo mã PCM
Mặc dù truyền thông anolog là lý tưởng cho thông tin con người, nhưng truyền dẫn analog thì không vững chắc và cũng kém hiệu quả khi muốn khôi phục lại thông tin đường dây bị nhiễu Đối với các mẫu digital, gồm có các bit 0 hay 1 thì rất dễ dàng tách biệt với các nhiễu đường dây Do đó, khi các tín hiệu analog được tái sinh từ các mẫu digital thì nó vẫn duy trì được âm thanh trung thực PCM chuyển âm thanh dạng analog sang digital bằng cách lấy mẫu âm thanh 8000 lần trong một đơn vị thời gian và đổi mỗi mẫu sang một mã số Phát biểu Nyquist cho rằng nếu lấy mẫu một tín hiệu analog với tốc độ gấp 2 lần tần số cao nhất có thể trong tín hiệu này thì bạn có thể tái tạo tín hiệu này trở vể dạng analog một cách chính xác Bởi hầu hết nội dung của tiếng nói đều nhỏ hơn 4000Hz nên cần đến tốc độ lấy mẫu là 8000 lần trong một đơn vị thời gian (125μs giữa các mẫu)
Trang 26CHƯƠNG 4: LÝ THUYẾT VỀ MẬT MÃ
4.1 KHÁI NIỆM VỀ MẬT MÃ
4.1.1 Một số định nghĩa
Thông điệp gốc (plain text): là thông điệp rõ trước khi được mã hóa
Thông điệp mật (cipher text): là thông điệp đã được mã hóa
Mã hóa (encryption): là quá trình biến đổi từ thông điệp rõ sang thông điệp
mật
Giải mã (decryption): là quá trình biến đổi ngược từ thông điệp mật
Thám mã: là kỹ thuật tấn công vào các hệ thống mật mã nhằm khám phá
nội dung của thông điệp
Khóa chính (primary communication key): là khóa được dùng để bảo mật
liên lạc
Khóa phụ (secondary key): là một loại khóa mã hóa được dùng để bảo vệ
các khóa chính Khi một khóa phụ được dùng để bảo vệ khóa chính trong môi trường liên lạc thì được gọi là khóa liên lạc phụ, còn khi áp dụng trong môi trường cơ sở dữ liệu thì nó được gọi là khóa tập tin phụ
Khóa phiên (communication session key): là khóa mã hóa dữ liệu chỉ có tác
dụng trong khoảng thời gian của một phiên liên lạc
Hệ mật mã (crytographic facility): là vùng chứa giải thuật mật mã (như là
DES) và một bộ nhớ cố định để chứa các khóa chủ Nó chỉ có thể được truy xuất thông qua các giao tiếp hợp pháp Vì một số lượng lớn các khóa mã hóa được dùng ở bộ xử lý của host nên cần phải có các thủ tục tự động tạo
ra và quản lý các khóa này Bộ tạo khóa sẽ tạo ra các khóa mã hóa khóa
Trang 27mà chúng được yêu cầu bởi host hoặc có thể được chỉ định bởi các user, nó có đặc quyền thêm vào, thay đổi và hủy bỏ các khóa
4.1.2 Lịch sử phát triển
Mật mã đã được con người sử dụng từ lâu đời Qua nhiều thế kỷ, các phương pháp mật mã cũng đã có nhiều biến đổi Ngày nay đã có nhiều phương pháp mã hóa và phương tiện mã hóa hiện đại, tuy nhiên một số nguyên lý cơ bản về mã hiệu mật vẫn có giá trị
Có hai kỹ thuật cơ bản sử dụng trong mật mã cổ điển đó là phép thay thế và phép chuyển dịch Trong phép thay thế, một chữ cái này được thay thế bằng một chữ cái khác và trong phép chuyển dịch, các chữ cái được sắp xếp theo một
trật tự khác Hình 4.1, hình 4.2, hình 4.3 là những ví dụ về các phương pháp mật
mã cổ điển
Hình 4.1 Phương pháp thay thế ký tự đơn
Hình 4.2 Phương pháp thay thế cụm ký tự
Bản tin đã mã hóa WIRFRWAJUHYFTDVFSFUUFYA
Bản tin rõ KHONG CO GI QUY HON DOC LAP TU DO
Chuyển đổi cụm KHONG COGIQ UYHON DOCLA PTUDO
Bản tin mã hóa NKGOH ICQGO OUNHY LDACO DPOUT
Trang 28Hình 4.3 Phương pháp mã hiệu kết hợp dòng và cột
4.1.3 Các xâm nhập vào dữ liệu được mã hóa
Trước khi mà vai trò của máy tính được lên ngôi thì việc mã hóa và giải mã các bản tin phụ thuộc chủ yếu vào tài năng và sự khôn khéo của con người Sự ra đời của máy tính đã giúp cho công việc mã hóa và giải mã tiến một bước dài Máy tính có thể thực hiện các phép tính phức tạp cực nhanh mà với con người phải mất hàng năm thậm chí hàng chục năm mới thực hiện được
Một người muốn mã hóa một đoạn tin sẽ gặp phải vấn đề là: hệ thống điều chế có thể phức tạp, ngôn ngữ của bản tin rõ chưa biết và phương thức mã hóa cùng với khóa mã cũng chưa biết Tuy nhiên, việc đánh giá độ mật của một phép mật mã thường được giả thiết rằng thuật toán mã đã được biết và vấn đề còn lại là giải mã đoạn tin đã được mã hóa bằng cách khám phá ra khóa mã Công việc sẽ là khó khăn cho người phân tích mã bởi vì chỉ dựa vào bản tin được mã hóa
Trang 29chứ không có thông tin gì về bản rõ Nếu như không có sự dư thừa nào trong bản tin thì việc khám phá khóa mã gặp nhiều khó khăn Nếu như biết được một phần nào đó của bản tin nguyên thủy thì bài toán có thể giải được Ví dụ, trong bản tin có phần tiêu đề được viết theo chuẩn, các khóa có thể được thử lần lượt cho đến khi phần tiêu đề được thừa nhận xuất hiện trong bản tin được giải mã Nếu như phần tiêu đề theo chuẩn đó là dài thì việc nhận dạng khóa càng chính xác Nếu tiêu đề ngắn thì có thể tập hợp nhiều bản được giải mã để lựa chọn các khóa có khả năng Việc biết mã hóa sử dụng cho bản rõ, bao gồm ví dụ như bit kiểm tra chẵn lẻ cũng là một yếu tố có ích cho người phân tích mã Cũng vì vậy mà trong nhiều trường hợp khóa mã không sử dụng bit kiểm tra chẵn lẻ
Nếu như người phân tích mã không những có bản tin đã mã hóa mà có cả bản tin rõ tương ứng thì việc khám phá khóa mã trở nên dễ dàng Công việc ở đây chỉ còn là khám phá khóa mã tương ứng cho bản tin rõ và bản tin đã mã hóa Nếu chiều dài bản tin khá đủ, thì khóa mã có thể nhận dạng với độ chính xác tuyệt đối
Khi muốn tin chắc chắn vào độ bảo mật của mật mã đã thực hiện thì phải đặt giả thiết là kẻ xâm nhập có những yếu tố thuận lợi nhất để khám phá Cụ thể là, kẻ xâm nhập phải biết thuật toán thực hiện, bản tin rõ và bản tin đã được mã hóa tương ứng Đó là điều có thể hoàn toàn xảy ra trong thực tế
Nếu như kẻ xâm nhập thực hiện một công việc tìm kiếm tất cả các khóa mã trong một máy tính theo phương pháp cặp “bản tin rõ – bản tin đã mã hóa” thì chúng ta có thể đánh giá thời gian cần thiết để tìm ra khóa mã
Trang 30Phép thử đơn giản 106 phép thử song song Chiều dài
Hình 4.4 Đánh giá độ phức tạp mã hóa
4.1.4 Các đe dọa đối với một hệ thống được bảo mật
Các mối đe dọa đối với toàn bộ hệ thống được bảo mật thuộc một hệ thống truyền tin hoặc một hệ thống lưu trữ dữ liệu có thể phân làm hai loại: các đe dọa dạng tích cực và các đe dọa dạng thụ động
Một xâm nhập dạng thụ động đối với một hệ thống là các mưu toan vượt qua hàng rào bảo vệ để thu những thông tin, dữ liệu truyền trên kênh truyền hoặc lưu giữ trong bộ nhớ mà không làm sai lạc nội dung các thông tin dữ liệu đó Loại xâm nhập này đối với các hệ thống truyền tin này đã xuất hiện từ thời phát minh
ra điện báo Trước khi có việc ghép kênh thì việc thu trộm tin trên đường truyền rất đơn giản Ngày nay, trong các mạng truyền dữ liệu với các dạng ghép kênh khác nhau và các giao thức phức tạp thì việc thu trộm có nhiều khó khăn và phức
Trang 31tạp hơn, cần có thiết bị đặc biệt và chuyên gia kỹ thuật Cũng cần lưu ý rằng, các thiết bị đặc biệt đó có thể kiếm rất dễ trên thị trường và các chuyên gia kỹ thuật cũng không hiếm Và vì vậy ý kiến cho rằng việc ghép kênh phức tạp có thể bảo vệ chống xâm nhập là một sai lầm nguy hiểm
Một sự rẽ nhánh thụ động không cần phải lọt qua các giao thức kiểm tra dòng dữ liệu Người ta có thể kiểm tra phát hiện một sự rẽ nhánh thụ động trên đường truyền vật lý bằng cách đo chính xác các đặc tính kỹ thuật của đường truyền Nhưng việc đo lường các thông số đó không thể thực hiện được trong trường hợp đường truyền kết nối vô tuyến Để bảo vệ chống lại các xâm nhập thụ động trong các trường hợp này chỉ có cách dùng phương pháp mã hóa để bảo vệ dữ liệu
Các xâm nhập tích cực là một mối nguy hiểm tiềm tàng Ở đây, kẻ xâm nhập tìm cách làm sai lạc các dữ liệu truyền hoặc các dữ liệu lưu trữ với hy vọng rằng chủ sở hữu hoặc người sử dụng không nhận biết Việc làm sai lạc các dữ liệu được lưu trữ có thể gây ra các sử dụng sai lạc của các đường truy cập Có thể sử dụng phương pháp mật mã để bảo vệ chống lại các xâm nhập tích cực Để làm được điều đó cần có một cấu trúc mã sao cho tất cả các việc làm sai lạc cấu trúc đó không thể thực hiện được nếu không phân tích được mã Một sự xâm nhập tích cực trên đường truyền tin hầu như cũng khó ngăn chặn giống như các xâm nhập thụ động Tuy vậy, việc phát hiện chúng thì dễ hơn nhiều, không cần phải mã hóa Việc làm sai lạc các dữ liệu lưu trữ cần phải có thời gian, và độ chính xác của thời gian truyền các dữ liệu cũng có thể giúp phát giác các xâm nhập Ở các đường truyền tin vô tuyến thì rất khó phát giác việc xâm nhập và đây thực sự là một cuộc đấu trí
Trang 32Nguồn thông tin Đích
Xâm nhập tích cực
Thông tin thực
Giao thức giả
Giao thức thực Thông tin thực
Giao thức giả Thông tin giả
Hình 4.5 Mô tả một xâm nhập tích cực
Việc thực hiện một cuộc xâm nhập rẽ nhánh tích cực cũng không phải là
một công việc đơn giản Hình 4.5 mô tả dạng xâm nhập tích cực Việc truyền tin
giữa nguồn và đầu cuối được điều khiển bởi một giao thức được gọi là giao thức thực Việc xâm nhập tích cực phải ngắt giao thức đó và đưa vào một giao thức giả Như vậy các thông tin thật sẽ từ nguồn về kẻ xâm nhập và các thông tin giả sẽ được kẻ xâm nhập đưa về đầu cuối mà đầu cuối không nhận biết được Với một số biến đổi, việc xâm nhập tích cực như trên có thể thiết lập được với kênh truyền tin Nếu mạng truyền tin là mạng diện rộng, hoặc mạng Internet thì việc
Trang 33thiết lập xâm nhập trên càng có điều kiện, bởi vì các giao thức truyền tin đã được công bố
Việc bảo vệ các dữ liệu truyền chống lại các xâm nhập tích cực cũng dựa trên các nguyên lý giống như bảo vệ các dữ liệu lưu trữ Nó có thể ngăn ngừa việc làm sai lạc, thêm vào, phá hoại dữ liệu của kẻ xâm nhập Trong các khối dữ liệu truyền được mã hóa thì việc xâm nhập phụ thuộc vào khối dữ liệu rõ tương ứng cũng như cả khối dữ liệu rõ trước nó Một xâm nhập tích cực sẽ không thực hiện được nếu không tìm được khóa mã theo kiểu thám mã Đối với những kẻ xâm nhập theo kiểu phát lại, có nghĩa là ghi lại các dữ liệu mã hóa đã được truyền rồi sau đó sử dụng lại cho xâm nhập thì có thể ngăn ngừa bằng các phương pháp xác thực hoặc nhận dạng
4.1.5 Khóa mã
Trong tất cả các hệ thống mật mã hiện đại, khóa mã đóng một vai trò đặc biệt quan trọng Thuật toán mã hóa không dùng khóa mã rất dễ phán đoán Trong các thuật toán có sử dụng khóa mã thì quá trình mã hóa được thực hiện dưới sự điều khiển của khóa mã, nó làm gia tăng độ hoàn thiện của thuật toán
Cũng cần lưu ý rằng, độ mật của mật mã không phải ở thuật toán mà ở khóa mã Mọi thuật toán đối phương đều có thể có Chính vì vậy mà một trách nhiệm lớn lao đối với người quản lý hệ thống là việc tạo khóa, phân phối khóa và hủy khóa sau khi sử dụng Trong quá khứ, người ta sử dụng giao liên để vận chuyển các khóa mã đến người sử dụng mật mã nhưng phương pháp đó không được thích hợp lắm trong điều kiện truyền tin hiện đại Cần phải có một phương pháp vận chuyển khóa nhanh hơn, hiệu quả hơn Điều đó dẫn đến một vấn đề là các khóa mã truyền trên các kênh truyền tin cần phải được bảo vệ cũng chính
Trang 34bằng mật mã bảo vệ thông tin Do đó cần phải có sự phân cấp khóa, trong đó phân biệt các khóa để bảo vệ dữ liệu và các khóa để bảo vệ các khóa truyền Các khóa bảo vệ khóa truyền không sử dụng thường xuyên cho nên có thể vận chuyển bằng các phương tiện vật lý
4.2 PHÂN LOẠI HỆ MẬT MÃ
Phụ thuộc vào khóa mật mã ta có thể chia hệ mật mã thành 3 loại: hệ mật đối xứng (còn gọi là hệ mật khóa bí mật), hệ mật bất đối xứng (còn gọi là hệ mật khóa công khai) và các hệ băm (Secure Hash)
4.2.1 Hệ mật đối xứng
Hệ mật đối xứng là hệ mật dùng một khóa giống nhau cho cả việc mã hóa và giải mã Hệ mật đối xứng được chia thành hai loại: mã tuần tự (stream ciphers) và mã khối (block ciphers) Ở thuật toán mã tuần tự, từng bit dữ liệu được mã theo thời gian trong khi ở thuật toán mã khối, các khối dữ liệu được tạo thành trước sau đó mới được mã hóa như một đơn vị riêng biệt Trong các hệ mật đối xứng người ta thường sử dụng các khóa ngẫu nhiên hay còn gọi là khóa bí mật Hệ mật đối xứng thường dùng trong các lĩnh vực đòi hỏi độ bảo mật cao như tình báo, an ninh quốc phòng Chúng ít được sử dụng trong thương mại do tính phức tạp
Dữ liệu rõ
Khóa K
Hình 4.6 Mô tả hệ mật đối xứng
Trang 354.2.2 Hệ mật bất đối xứng
Hệ mật bất đối xứng là hệ mật mà bên mã hóa và bên giải mã dùng hai khóa khác nhau Ở hệ mật này trước khi mã, hai bên nhận và gửi sẽ tạo ra hai cặp khóa (e,N) và (d,N) Trong mỗi cặp khóa đó có một khóa được gọi là khóa riêng
tư (d) và khóa còn lại là khóa công cộng Khóa công cộng được phát hành công khai trên mạng Tùy theo từng trường hợp cụ thể, người ta sẽ sử dụng từng khóa cụ thể để mã hóa hoặc giải mã Độ dài của khóa công khai thường lớn hơn nhiều
so với độ dài của khóa bí mật Lý do là ở các hệ mật khóa công khai sử dụng các cấu trúc phụ để xác định khóa bí mật từ khóa công khai Những cấu trúc phụ đó có thể làm cho việc thám mã dễ dàng hơn Chính vì vậy độ dài khóa phải đủ lớn để bài toán tính khóa bí mật trở thành vô cùng phức tạp và hầu như không thể thực hiện nổi cho dù với công nghệ hiện nay Hệ mật bất đối xứng thường được dùng trong các lĩnh vực thương mại, dân dụng do tính đơn giản trong giao tiếp
Hình 4.7 Mô tả hệ mật bất đối xứng
4.2.3 Hệ băm
Các hàm băm cũng thuộc loại hệ mật bất đối xứng nhưng do tính đặc thù nên ta có thể xem như một hệ riêng Các hàm băm được sử dụng vào nhiều mục đích khác nhau ví dụ như chứng thực hoặc kiểm tra toàn vẹn dữ liệu Hàm băm thực hiện việc nén các bit của văn bản thành một chuỗi có độ dài cố định Mỗi văn bản sẽ có một giá trị băm duy nhất Bài toán nghịch là cực kỳ khó khăn
4.3 HỆ MẬT ĐỐI XỨNG – MẬT MÃ KHỐI – THUẬT TOÁN DES
Trang 364.3.1 Giới thiệu
Các giải thuật mật mã đối xứng là các giải thuật sử dụng cùng một khóa bí mật cho tác vụ mã hóa và tác vụ giải mã Ví dụ như các giải thuật thay thế và hoán vị, giải thuật DES, … Ở đây ta chỉ tìm hiểu giải thuật DES (Data Encryption Standard) là giải thuật mật mã đối xứng được sử dụng phổ biến nhất và cũng là mật mã được sử dụng trong đề tài
Mật mã khối được cấu trúc trên nguyên tắc là bản tin được chia thành các khối có độ dài bằng nhau và việc mã hóa được tiến hành theo từng khối độc lập Trong môi trường máy tín, độ dài của khối được tính bằng bit Ví dụ, bản tin được chia thành các khối Bi, sau khi mã hóa chúng có các khối Ci tương ứng
B0B1B2 Bn-2Bn-1
C0C1C2 Cn-2Cn-1
Độ bảo mật của mã trong trường hợp này phụ thuộc vào độ dài của khối và độ phức tạp của thuật toán mã hóa Nếu kích thước của khối quá bé thì việc giải mã không mấy khó khăn do dò tìm được đặc tính cấu trúc thống kê của bản tin rõ Nếu tăng kích thước khối thì mức độ cấu trúc thống kê cũng tăng theo số mũ và nếu kích cỡ khối tiến tới đoạn tin thì tác dụng mã khối sẽ giảm
Vào khoảng đầu những năm 70, hãng IBM đề xuất một thuật toán mã khối được gọi là thuật toán Lucifer Thuật toán đó đáp ứng các yêu cầu của cơ quan chuẩn quốc gia Mỹ NBS và được ứng dụng ở các trạm ngân hàng tự động Thuật toán Lucifer sau này được phát triển cải tiến trở thành chuẩn mã hóa DES
Các phép thay thế và chuyển vị, các dạng mã hiệu mật của các thuật toán mã hóa cổ điển có độ bảo mật rất kém Ơû thuật toán Lucifer có sự phối hợp các thuật toán trên để tạo nên mã có độ bảo mật lớn hơn nhiều Thuật toán Lucifer có độ dài khối tin là 128 bit và độ dài khóa cũng là 128 bit Như vậy, số khả năng
Trang 37các biến đổi với khóa 128 bit và độ dài khối 128 bit sẽ là (2128)! , một số lượng khả năng khá lớn
4.3.2 Thuật toán DES
Ngày 15/5/1973, Uûy Ban Tiêu Chuẩn Quốc Gia Mỹ đã công bố một khuyến nghị cho các hệ mật trong Hồ sơ quản lý của Liên Bang Điều này cuối cùng đã dẫn đến sự phát triển của chuẩn mã hóa dữ liệu DES và nó đã trở thành một hệ mật được sử dụng rộng rãi nhất trên thế giới DES được IBM phát triển và được xem như một cải biên của hệ mật Lucifer DES được công bố lần đầu tiên vào ngày 17/3/1975 Sau nhiều cuộc tranh luận công khai, DES được chấp nhận chọn làm chuẩn cho các ứng dụng không được coi là mật vào ngày 5/1/1977
DES là một giải thuật mật mã đối xứng, thuật toán có 2 đầu vào và một đầu ra DES mã hóa các khối data có độ dài 64 bit với khóa 56 bit Bản mã nhận được cũng là một khối có độ dài 64 bit Giải thuật mã hóa và giải mã được mô tả
tóm tắt như hình 4.8
Trang 38Hình 4.8 Mô tả thuật toán DES
Trang 39Thuật toán tiến hành theo 3 giai đoạn:
- Giai đoạn 1: Bản rõ T được hoán vị bởi phép hoán vị khởi động IP thành T0 (
T0 = IP(T)) Sau đó T0 được chia thành 2 khối trái phải T0 = L0R0 , với L0 là
32 bit đầu (L0 = t1… t32) , R0 là 32 bit cuối ( R0 = t33… t64)
- Giai đoạn 2: Tính toán 16 vòng lặp theo một hàm xác định f(mỗi vòng sử
dụng một khóa 48 bit được tạo ra từ khóa input 56 bit) theo quy tắc sau:
Li = Ri-1
Ri = Li-1 ⊕ F(Ri-1, Ki) (⊕ là ký hiệu phép cộng loại trừ) Hàm f có hai biến vào: biến thứ nhất R là xâu bit có độ dài 32 Biến thứ hai K là một xâu bit có độ dài 48 Đầu ra của hàm f là một xâu bit có độ dài
32 Các bước được thực hiện như sau:
• Biến thứ nhất R được mở rộng thành một xâu bit có độ dài 48 theo một hàm mở rộng cố định E E(R) gồm 32 bit của R được hoán vị theo cách cố định với 16 bit xuất hiện hai lần
• Tính E(R) ⊕ K và viết kết quả thành một chuỗi 8 xâu, mỗi xâu là 6 bit
Trang 40• Dùng 8 bảng S1,S2,S3, S4,S5,S6,S7,S8 (được gọi là các hộp S) với mỗi Si
là một bảng 4x16 cố định có các hàng là các số nguyên từ 0 đến 15 Với xâu bit Bi có độ dài 6: b1b2b3b4b5b6 ta tính Sj (bj) như sau: hai bit b1b6 xác định biểu diễn nhị phân của hàng r của hộp Sj (0 ≤ r ≤ 3) và bốn bit
b2b3b4b5 xác định biểu diễn nhị phân của cột c của hộp Si (0 ≤ c ≤ 15) Khi đó, Sj (bj) sẽ xác định phần tử Sj (r,c), phần tử này viết dưới dạng nhị phân là một xâu bit có độ dài 4 Bằng cách tính tương tự ta tính các phần tử Cj =