Nghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thựcNghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thựcNghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thựcNghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thựcNghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thựcNghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thựcNghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thựcNghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thựcNghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thựcNghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thực
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
NGUYỄN HOÀNG TIẾN
NGHIÊN CỨU ỨNG DỤNG CÁC HỆ MẬT MÃ HẠNG NHẸ TRONG BẢO MẬT DỮ LIỆU VIDEO THỜI GIAN THỰC
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-
NGUYỄN HOÀNG TIẾN
NGHIÊN CỨU ỨNG DỤNG CÁC HỆ MẬT MÃ HẠNG NHẸ TRONG BẢO MẬT DỮ LIỆU VIDEO THỜI GIAN THỰC
Chuyên ngành: Hệ thống thông tin
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được công
bố trong bất kỳ công trình nào khác
Hà Nội, tháng năm 2019 Tác giả luận văn
Nguyễn Hoàng Tiến
Trang 4LỜI CẢM ƠN
Tôi xin trân trọng cảm ơn các thầy cô trong Khoa công nghệ thông tin đã tạo điều kiện cho tôi một môi trường học tập tốt, đồng thời truyền đạt cho tôi một vốn kiến thức quý báu, một tư duy khoa học để phục vụ cho quá trình học tập và công tác của tôi
Tôi xin gửi lời cảm ơn đến các bạn trong lớp Cao học Hệ thống thông tin M17CQIS01-B khóa 2017- 2019 đã giúp đỡ tôi trong suốt thời gian học tập vừa qua
Đặc biệt, tôi xin được bày tỏ lòng biết ơn sâu sắc đến người hướng dẫn khoa học của tôi GS.TS NGUYỄN BÌNH và TS CAO MINH THẮNG đã tận tình chỉ bảo cho tôi trong suốt quá trình học tập và nghiên cứu, giúp tôi có nhận thức đúng đắn về kiến thức khoa học, tác phong học tập và làm việc, tạo điều kiện thuận lợi để tôi hoàn thành luận văn này
Cuối cùng, tôi xin được gửi lời cảm ơn tới gia đình, đồng nghiệp, người thân
đã động viên, giúp đỡ tôi trong quá trình hoàn thành luận văn
Hà Nội, tháng năm 2019 Tác giả luận văn
Nguyễn Hoàng Tiến
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH MỤC BẢNG BIỂU vi
DANH MỤC HÌNH VẼ vii
MỞ ĐẦU 1
CHƯƠNG 1 - TỔNG QUAN VỀ BẢO MẬT DỮ LIỆU VIDEO THỜI GIAN THỰC 4
1.1 Quá trình truyền dòng của dữ liệu video thời gian thực 4
1.1.1 Tổng quan về video thời gian thực 4
1.1.2 Quá trình truyền dòng 5
1.2 Các giao thức streaming chuyên biệt 10
1.2.1 Giao thức RTSP 10
1.2.2 Giao thức RTP 11
1.2.3 Giao thức SIP 13
1.3 Chuẩn nén video H264 13
1.3.1 Tổng quan 13
1.3.2 Cơ chế hoạt động 15
1.4 Giải pháp bảo mật dữ liệu video thời gian thực bằng phương pháp mật mã học 21 1.4.1 Mật mã khóa công khai 21
1.4.2 Mật mã khóa bí mật 22
1.4.3 Phân tích lựa chọn phương pháp mã hóa phù hợp 25
CHƯƠNG 2 - Nghiên cứu đề xuất ứng dụng các hệ mật hạng nhẹ vào dữ liệu video thời gian thực 26
2.1 Một số hệ mật mã khối hạng nhẹ phổ biến 26
2.1.1 Phân loại hệ mật mã khối hạng nhẹ 26
Trang 62.1.2 Hệ mật AES 27
2.1.3 Hệ mật E-RISKE 30
2.2 Phương pháp mã hóa chọn lọc trên H264 32
2.2.1 Mã hóa trước khi nén 32
2.2.2 Mã hóa trong khi nén 33
2.2.3 Mã hóa sau khi nén 34
2.3 Đề xuất phương pháp ứng dụng hệ mật hạng nhẹ để bảo mật dữ liệu video thời gian thực 35
2.3.1 Đặt vấn đề 35
2.3.2 Thủ tục mã hóa 36
2.3.3 Thủ tục giải mã 37
2.3.4 Phân tích hiệu năng của phương pháp đề xuất 38
CHƯƠNG 3 - CÀI ĐẶT VÀ THỬ NGHIỆM 40
3.1 Xây dựng kịch bản thử nghiệm 40
3.2 Xây dựng chương trình 42
3.2.1 Xây dựng máy chủ RTSP 42
3.2.2 Xây dựng phần mềm nhận dữ liệu 44
3.3 Thử nghiệm, đánh giá kết quả 45
3.3.1 Thử nghiệm 45
3.3.2 Đánh giá 51
KẾT LUẬN VÀ KIẾN NGHỊ 54
DANH MỤC TÀI LIỆU THAM KHẢO 55
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
AES Advanced Encryption Standard Chuẩn mã hóa nâng cao AVC Advanced Video Coding Chuẩn nén video nâng cao
E-RISKE Extended Random Invertible
Secret-Key Encryption) Tên thuật toán mã hóa
IP Internet Protocol Giao thức internet
thức mạng NAL Network Abtraction Layer Lớp mạng trừu tượng
SE Selective Encryption Mã hõa chọn lọc
Trang 8DANH MỤC BẢNG BIỂU
Bảng 1.1 Loại Slice……… 18Bảng 1.2 Tiêu đề Macroblock……… 19Bảng 2.1 Cấu trúc đại số nền tảng của hệ mật E-RISKE 30
Trang 9Hình 3.5 Khởi động chương trình máy khách thí nghiệm 46
Trang 10Hình 3.15 Kết quả thí nghiệm 5 51
Trang 11MỞ ĐẦU
Ngày nay với sự phát triển nhanh của công nghệ thông tin và mạng Internet, việc sử dụng các dịch vụ từ dữ liệu video thời gian thực ngày càng trở lên phổ biến, cho phép xem hình ảnh có âm thanh từ xa qua Internet theo thời gian gần như thực
Dữ liệu thời gian thực tồn tại dùng trong rất nhiều ứng dụng cuộc sống, có thể thấy như kênh truyền hình trực tiếp, các kênh livestream, thoại video, đặc biệt nhiều hơn
từ các thiết bị IoT như camera giám sát qua mạng (IP camera)… Đối mặt với sự phát triển này, việc xâm phạm dưới các hình thức khác nhau có thể ảnh hưởng nặng
nề tới các cá nhân và tổ chức xã hội Do vậy, nhu cầu an toàn an ninh cho dữ liệu thời gian thực trở nên cấp thiết và đòi hỏi ở các mức độ cao hơn
Tuy nhiên trên thực tế lại hình thành một mâu thuẫn giữa sự phát triển các dịch
vụ với việc đảm bảo an toàn thông tin dữ liệu video thời gian thực Điều này dễ dàng có thể hiểu được vì môi trường truyền dữ liệu là một mạng mở, thiết bị thu phát dữ liệu lại thường là những thiết bị có tài nguyên hạn chế, giá thành thấp hoặc
ít quan tâm đến bảo mật Một trong những giải pháp hiệu quả nhất nhằm bảo đảm
an toàn dữ liệu trong mạng này là sử dụng mật mã Hiện nay đã có một số loại mật
mã được áp dụng vào bảo mật dữ liệu video thời gian thực, tuy nhiên chỉ đạt hiệu quả trên những thiết bị có tài nguyên đủ lớn Với các thiết bị có tài nguyên hạn chế thì các thuật toán mật mã thông thường là quá lớn, quá chậm và quá tốn năng lượng Vấn đề đặt ra là phải đề xuất được các hệ mật mã có khả năng mã hóa video thời gian thực trên các hệ thống có tài nguyên hạn chế
Trong bối cảnh đó, đề tài “ Nghiên cứu ứng dụng các hệ mật mã hạng nhẹ trong bảo mật dữ liệu video thời gian thực” là một vấn đề nóng thu hút sự quan tâm của cộng đồng công nghệ trong và ngoài nước
Hiện nay, theo các báo cáo khảo sát về các phương thức mã hóa video thời gian thực [1] [2] [3] Về cơ bản, có 3 loại chính của mã hóa video:
- Trước khi tạo luồng video (mã hóa dựa trên "pixel")
- Trong khi tạo luồng video (chuyển đổi dựa trên sự kết hợp của mã hóa
(coding) và mật mã (encryption))
Trang 12- Sau khi tạo luồng video (mã hóa cấp độ bit)
Trong tất cả các phương pháp này, mã hóa sau khi tạo luồng video cung cấp bảo mật cao hơn và không ảnh hưởng đến hiệu quả nén và chất lượng video Tuy nhiên, tốc độ mã hóa là rất thấp mặc dù tỷ lệ nén sau khi tạo luồng video là cao nhất
Để sử dụng tốt phương thức này cần có phương pháp hợp lý để thỏa hiệp giữa tốc
độ mã hóa và độ an toàn
Theo khảo sát về các phương thức mã hóa video truyền qua mạng [1] Do kích thước khổng lồ của video kỹ thuật số nói chung chúng truyền qua nén các định dạng như MPEG 1/2/4 [4], H.263 / H.264 / AVC [5] [6] Các phương pháp mã hóa khác nhau đã được đề xuất: Mã hóa hoàn toàn, mã hóa dựa trên hoán vị, mã hóa chọn lọc, mã hóa cảm tính.Trong các phương pháp này, mã hóa chọn lọc được cho
là có tốc độ và độ an toàn ở mức cân bằng nhất
Để tăng cao tốc độ mã hóa và phù hợp trên các thiết bị có tài nguyên hạn chế,
hệ mật mã hạng nhẹ được sử dụng để thay thế cho hệ mã hóa thông thường (DES ) Hiện nay, trên thế giới có rất nhiều hệ mật mã hạng nhẹ [10] nhằm hướng tới những yêu cầu cụ thể , như: mã khối DESL và DESXL, mã khối HIGHT, mã khối mCrypton, SEA, TEA, ICEBERG, PRINCE… một số mật mã khối đã đạt chuẩn ISO/IEC 29192-2 (các thuật toán mã hóa sẵn sàng để sử dụng trong các hệ thống thực tế.) như PRESENT, CLEFIA SIMON và SPECK Đặc biệt có thuật toán E-RISKE là mật hệ mật mã hạng nhẹ mới được công bố vào năm 2017 [7] Tuy nhiên, hiện chưa có đề xuất cụ thể nào về ứng dụng mật mã trong bảo mật dữ liệu video thời gian thực trên các thiết bị có tài nguyên hạn chế và đây cũng chính là vấn đề nghiên cứu chính của đề tài
Với cách đặt vấn đề như trên, mục đích nghiên cứu của luận văn là ứng
dụng được hệ mật hạng nhẹ trên thiết bị phát dữ liệu video thời gian thực có tài nguyên hạn chế mà vẫn duy trì chất lượng dịch vụ
Đối tượng nghiên cứu chính của đề tài là phương pháp bảo mật video thời
gian thực và một số hệ mật mã khối hạng nhẹ
Trang 13Phạm vi nghiên cứu của đề tài là tập trung phân tích phương pháp sử dụng
mật mã chọn lọc với loại dữ liệu video H264
Phương pháp nghiên cứu chính được sử dụng trong đề tài là nghiên cứu lý
thuyết kết hợp với thực nghiệm, so sánh định tính định lượng và phân tích, đánh giá kết quả
Nội dung của đề tài được trình bày theo cấu trúc sau:
- Chương 1: Tổng quan về bảo mật dữ liệu video thời gian thực
- Chương 2: Nghiên cứu đề xuất ứng dụng các hệ mật hạng nhẹ vào dữ liệu
video thời gian thực
- Chương 3: Phân tích đánh giá thử nghiệm
- Kết luận và khuyến nghị: Tổng hợp đánh giá các kết quả đạt được của đề
tài đồng thời xác định các hướng nghiên cứu tiếp theo
Kết quả dự kiến của luận văn là nghiên cứu và phân tích một số hệ mật mã
hạng nhẹ, đề xuất phương pháp ứng dụng mã hóa chọn lọc hạng nhẹ vào dữ liệu video thời gian thực Thử nghiệm và đánh giá tốc độ và độ an toàn trong việc ứng dụng hệ mật ERISK trong mã hóa dữ liệu video thời gian thực
Trang 14CHƯƠNG 1 - TỔNG QUAN VỀ BẢO MẬT DỮ LIỆU VIDEO
THỜI GIAN THỰC
Có rất nhiều ứng dụng hiện nay đòi hỏi tính thời gian thực (real time) Trong các dịch vụ truyền hình qua mạng, hội thảo trực tuyến, chat hình, chat tiếng…mỗi ứng dụng có những đặc điểm riêng của nó, tuy nhiên có một số điều chung nhất mà các dịch vụ này đều yêu cầu đó là việc truyền dữ liệu theo dòng (streaming) một cách
an toàn Do vậy trong chương này sẽ tìm hiểu khái niệm truyền dòng, cách thực hoạt động của nó và phương pháp đảm bảo an toàn cho dữ liệu
1.1 Quá trình truyền dòng của dữ liệu video thời gian thực
1.1.1 Tổng quan về video thời gian thực
Video là một loại dữ liệu đa phương tiện quan trọng trong các lĩnh vực truyền thông và giải trí Trong thời kì sơ khai, Video được xử lý và truyền dưới dạng tín hiệu Analog Nhưng sự phát triển mạnh mẽ của mạch điện tử và máy tính
đã thúc đẩy việc số hóa Video và mở ra một cuộc cách mạng về các công nghệ nén
và truyền Video
Trong những năm 90, với sự phát triển và phổ biến của Internet, Video được truyền bằng công nghệ chuyển mạch gói Dù vậy, khi truyền qua mạng Internet, người ta vẫn thường xuyên gặp những yếu tố bất lợi về băng thông, độ trễ và mất gói tin, cùng với đó là vấn đề chia sẻ tài nguyên mạng giữa các luồng và làm thế nào để triển khai hiệu quả các phương thức truyền thông Multicast
Thông thường, người dùng chỉ có thể đọc Video sau khi đã tải toàn bộ Video
về đĩa cứng trên máy mình Thế nhưng, trong bối cảnh các Video đang được cung cấp dưới dạng chất lượng cao thông qua Internet cũng như yêu cầu nhanh chóng, tiện dụng đang được người dùng Internet đặt lên hàng đầu thì phương pháp ấy đã không còn hiệu quả Từ đây, một bài toán được đặt ra nhằm truyền tải Video đến người dùng một cách nhanh chóng, thuận tiện mà vẫn đảm bảo được chất lượng cần thiết Ta có khái niệm truyền dòng dữ liệu video thời gian thực (Video Streaming)
là “truyền Video một cách liên tục từ một nguồn đến một hay nhiều đích nào thông
Trang 15qua Internet mà vẫn đảm bảo thời gian tương ứng với thời gian thật một cách tương đối”
Video Streaming cho phép việc giải nén kết hợp với hiển thị dữ liệu trong khi vẫn tiếp tục tải phần còn lại của Video về Đây gọi là kĩ thuật Buffering:
Video sẽ được chia ra thành từng gói nhỏ, sau đó liên tục truyền những gói ấy tới người dùng
Người dùng khi nhận được một phần nhỏ của dữ liệu Video sẽ bắt đầu giải nén và hiển thị phần dữ liệu ấy trong khi vẫn tiếp tục tải về các gói dữ liệu tiếp theo
để tiếp tục giải nén và hiển thị
Vậy, có thể dễ dàng thấy rằng Video Streaming mang lại sự tiện dụng và nhanh chóng như thế nào Ứng dụng của Video Streaming rất rộng lớn, trong đó, dễ thấy nhất là trong lĩnh vực truyền thông báo chí trên mạng Internet, nơi các kênh báo hình đang ngày càng được chú trọng phát triển Một số vị dụ điển hình của như : IPTV, Ipcamera, youtube
1.1.2 Quá trình truyền dòng
Truyền dòng đối với video hay audio phải trải qua nhiều công đoạn với từng nhiệm vụ riêng để đi đến kết quả cuối cùng là đạt được khả năng thể hiện ngay ở bên nhận [8]
1.1.2.1 Kiến trúc hệ thống
Hình 1.1 Quá trình truyền đòng video
Trang 16Trong đó:
- Streaming Server: Là bộ phận đóng vai trò quan trọng trong việc cung
cấp các dịch vụ trực tuyến mà cụ thể là Streaming Video Để cung cấp dịch vụ Streaming Video một cách chất lượng, Streaming Server được yêu cầu phải xử lý dữ liệu Video với sự ràng buộc về thời gian thực, hạn chế độ trễ và hỗ trợ cho người dùng các tương tác trên Video như tạm dừng hay truy xuất đến bất kì thời điểm nào của Video
- Video/Audio Compression: Là bộ phận thực hiện công đoạn nén các dữ
liệu Video/Audio trước khi truyền nhằm giúp quá trình truyền đạt hiệu quả tốt nhất về tiết kiệm băng thông
- Application Layer QoS Control: Trong quá trình truyền, sự biến thiên về
tài nguyên mạng là không thể tránh khỏi Cùng với đó, yêu cầu chất lượng Video của mỗi đối tượng người dùng là khác nhau, vì thế nhiều kĩ thuật điều khiển chất lượng tầng ứng dụng đã được đưa ra Kỹ thuạt này bao gồm điều khiển tắc nghẽn và kiểm soát lỗi nhằm ngăn ngừa việc làm mất gói dữ liệu và giảm độ trễ, mặt khác còn có thể cải thiện chất lượng Video được trình chiếu ở máy người dùng trong điều kiện đường truyền tốt
- Media Synchronization: Là cơ chế đồng bộ cho phép Video và Audio
được phát bên phía người nhận có được sự đồng bộ giống như Video và Audio gốc
- Transfer Protocols: Là giao thức được thiết kế và chuẩn hóa cho việc
truyền dữ liệu giữa máy tính người dùng và Streaming Server bao gồm các giao thức tầng mạng (IP), giao thức tầng giao vận (UDP/TCP) và giao thức điều khiển phiên Real-time Streaming Protocol (RTSP)
- Continous Media Distribution Service: Là dịch vụ được xây dựng trên
nền mạng Internet, cho phép việc phân phối Video trên đường truyền đạt được Quality of Service (chất lượng dịch vụ) và hiệu quả cao
Trang 171.1.2.2 Cơ chế hoạt động
Bước 1 – Nén dữ liệu:
Quá trình truyền thông bắt đầu ở lớp mã hóa (video coding), các tín hiệu tương tự hoặc số được nén Tín hiệu đầu ra của bộ nén là các dòng MPEG cơ bản Các dòng MPEG cơ bản được định nghĩa là các tín hiệu số liên tục thời gian thực
Có nhiều loại dòng cơ bản Ví dụ âm thanh được mã hóa sử dụng MPEG được gọi
là “dòng cơ bản âm thanh” Một dòng cơ bản thực ra chỉ là tín hiệu ra thô từ bộ mã hóa Các dòng dữ liệu được tổ chức thành các khung tại lớp này Các thông tin chứa trong một dòng cơ bản có thể bao gồm: Loại khung và tốc độ, vị trí của những block dữ liệu trên màn hình, tỉ số cạnh
Điều quan trọng phải chú ý là lớp này được chia thành 2 lớp phụ theo đặc tính của chuẩn H.264/AVC: lớp mã hóa video(VCL) và lớp trừu tượng(NAL) Lớp phụ VCL quan tâm tới việc nén các nội dung video Tín hiệu đầu ra của lớp này là chuỗi các slice ảnh Dòng bit ở lớp NAL được tổ chức thành các gói rời rạc được gọi là các khối NAL Định dạng của các khối NAL được mô tả trong Hình 1.2
Dữ liệu video payload NAL Đơn vị header NAL
5 bit định nghĩa kiểu của đơn vị Nal
Hình 1.2 Cấu trúc NAL
Việc nén video là một công đoạn không bắt buộc nhưng rất cần thiết Với các loại dữ liệu video như dữ liệu thu từ camera, thì việc lưu trữ hay truyền video không nén sẽ phải trả giá cao, đôi khi là điều không thể Ta lấy ví dụ với một định dạng
Trang 18tiêu biểu thường được sử dụng trong các ứng dụng hội nghị từ xa bằng video là định dạng CIF (Common Intermediate Format) CIF sử dụng độ phân giải 352 pixel mỗi dòng và có 288 dòng tất cả Một ảnh không nén cho một frame hình (chế độ 352x288x16bpp) chiếm 202752 byte Việc ghi video không nén với tốc độ 15 hình một giây sẽ cần xấp xỉ 3 MB và nếu truyền qua mạng thì băng thông cần thiết cho mét dòng video không nén là 24 Mbps Từ ví dụ trên, ta thấy việc nén video gần như là không thể thiếu được nếu các dòng video được truyền trên môi trường mạng tốc độ thấp
Tuỳ theo yêu cầu chất lượng và băng thông, mà ta có thể lựa chọn được phương pháp nén thích hợp Với việc áp dụng một chuẩn nén cho dữ liệu video, không gian lưu trữ cần thiết cùng băng thông mạng yêu cầu cho dòng video giảm đáng kể Hiện phổ biến hai họ chuẩn nén, là họ CCITT với các chuẩn dạng H.26x,
H 36x và họ ISO MPEG với các chuẩn MPEG-1, MPEG-2, MPEG-4, MPEG-7
Bước 2 – Lấy mẫu:
Việc lấy mẫu thực chất là việc chia nhỏ nội dung của video hay audio ra thành các khối nhỏ thích hợp để có thể truyền đi trong môi trường mạng Đối với các dữ liệu audio, việc lấy mẫu được thực hiện theo thời gian Tương ứng sau một khoảng thời gian bằng chu kì lấy mẫu phần dữ liệu audio tương ứng trong khoảng thời gian đó sẽ được sử dụng để truyền đi Với các dữ liệu video, ngoài việc lấy mẫu theo thời gian còn có việc lấy mẫu theo không gian Việc lấy mẫu theo thời gian tương ứng với thời gian thể hiện của các khung hình và việc lấy mẫu theo không gian sẽ được thực hiện bằng cách chia nhỏ các khung hình thành các phần với kích thước thích hợp đối với việc truyền đi
Khi lấy mẫu, các mẫu phải chứa đựng đầy đủ các thông tin dùng cho việc khôi phục lại dữ liệu video hay audio về cả mặt không gian cũng như thời gian khi bên nhận nhận được các mẫu này Với việc sử dụng một giao thức truyền thông thời gian thực như RTP(Real-time Transport), quá trình lấy mẫu sẽ được tiến hành tự động
Trang 19Bước 3 - Truyền các mẫu qua mạng:
Việc truyền các mẫu dữ liệu video có thể được thực hiện một cách trực tiếp thông qua các giao diện của môi trường mạng như Socket hay được thực hiện thông qua một giao thức cấp cao ở tầng ứng dụng như RTP Thông thường người ta sẽ chọn giải pháp thứ hai, tức là sử dụng một giao thức truyền dòng thời gian thực cho việc truyền các mẫu nếu như giao thức đó được hỗ trợ trên nền phần cứng cũng như phần mềm
RTP sử dụng TCP và UDP là 2 giao thức để truyền tải gói tin qua mạng Trong đó TCP mang đến sự ổn định trong việc truyền dữ liệu, UDP có tốc độ truyền
dự liệu tốn hơn nhưng độ ổn định thấp hơn TCP
Việc sử dụng một giao thức truyền dòng thời gian thực có nhiều ưu điểm Ưu điểm thứ nhất là tính hiệu quả, bởi vì các giao thức truyền thông thời gian thực được thiết kế cho việc truyền các loại dữ liệu động, như dữ liệu video chẳng hạn, khi đó tính thời gian thực sẽ được chú trọng hơn là tính chính xác về mặt dữ liệu
Ưu điểm thứ hai là các giao thức thời gian thực hỗ trợ mạnh việc đồng bộ các dòng
dữ liệu từ các nguồn khác nhau nhưng có quan hệ với nhau về mặt thời gian thực
Bước 4 – Nhận và khôi phục dữ liệu và đồng bộ các dòng:
Đây là quá trình ngược với bước thứ ba, được thực hiện ở bên nhận khi dữ liệu dưới dạng các gói tin được truyền đến Các gói tin được truyền đến có thể là của nhiều dòng tương ứng với nhiều nguồn dữ liệu khác nhau và cũng có thể thứ tự các gọi tin nhận được không giống như khi chúng được gửi đi Khi đó bên nhận phải căn cứ vào các thông tin được ghi trong từng gói tin để có thể xác định được vị trí về mặt không gian và thời gian của các mẫu dữ liệu mà gói tin mang theo Việc xác định được vị trí của các mẫu dữ liệu trong gói tin giúp cho việc khôi phục lại nội dung của video hay audio một cách chính xác nhất Với việc truyền các dòng đơn lẻ không có quan hệ với nhau về mặt thời gian, thì nội dung của audio hay video vừa được khôi phục có thể được sử dụng để trình diễn Còn trong trường hợp
có nhiều dòng khác nhau có quan hệ với nhau về mặt thời gian thực thì cần phải đồng bộ các dòng về mặt thời gian
Trang 20Việc đồng bộ các dòng chỉ cần thiết khi các dòng có quan hệ với nhau về mặt thời gian, chẳng hạn như việc đồng bộ hình với tiếng khi truyền video, khi đó thời gian thể hiện của các dòng phải được tính toán sao cho phù hợp với nhau Việc đồng bộ là một công việc phức tạp, thường được thực hiện tự động bởi các giao thức truyền thông thời gian thực như RTP Khi đó mặc dù thứ tự các gói tin nhận được có thể không giống như thứ tự khi được gửi, thậm chí có một số gói tin bị mất nhưng giao thức vẫn phải đảm bảo tính đồng bộ cho các dòng khi được thể hiện ở nơi nhận
Bước 5 – Giải nén
Bước này sẽ tiến hành giải nén dòng video/audio với chuẩn nén được sử dụng khi nén Dữ liệu sau khi giải nén có thể được thể hiện ra các thiết bị ra hay được ghi
ra file
1.2 Các giao thức streaming chuyên biệt
Qua nhiều năm, một số giao thức streaming được xây dựng và phát triển bởi
cả các công ty thương mại và cộng đồng Internet Về phía thương mại, các công ty giải pháp streaming thường phát triển các giao thức streaming của riêng họ để dùng cho các sản phẩm của mình Ví dụ, Microsoft phát triển dịch vụ Microsoft Media Services (MMS) để dùng trong hệ thống Windows Media MMS dùng TCP để trao đổi các thông tin điều khiển và truyền dữ liệu đa phương tiện qua cả TCP và UDP RealNetworks cũng phát triển giao thức RealNetwork Data Transport (RDT) để dùng cho cá giải pháp của họ Do tính riêng tư, nên các giao thức này sẽ không được bàn thêm trong nội dung này
Bên cạnh đó ,cộng đồng Internet cũng phát triển các chuẩn mở dành cho streaming media Các chuẩn này bao gồm: Real Time Streaming Protocol (RTSP) được định nghĩa trong chuẩn RFC 2326, RealTime Transport Protocol (RTP) và RTP Control Protocol (RTCP) trở thành chuẩn từ năm 2004 [8]
1.2.1 Giao thức RTSP
RTSP (Real Time Streaming Protocol) là một giao thức điều khiển trên mạng được thiết kế để sử dụng giao tiếp giữa máy client và máy streaming server Giao
Trang 21thức này được sử dụng để thiết lập và điều khiển phiên giao dịch giữa các máy tính (end points)
Về hình thức, giao thức RTSP cũng có nét tương đồng với giao thức HTTP, RTSP định nghĩa một bộ các tín hiệu điều khiển tuần tự, phục vụ cho việc điều khiển quá trình playback Trong khi giao thức HTTP là giao thức không có trạng thái thì RTSP là giao thức có xác định trạng thái Một định danh được sử dụng khi cần thiết để theo dõi các phiên giao dịch hiện tại của quá trình streaming video gọi
là số hiệu session Cũng giống như HTTP, RTSP sử dụng TCP là giao thức để duy trì một kết nối đầu cuối tới đầu cuối và các thông điệp điểu khiển của RTSP được gửi bởi máy client tới máy server Nó cũng thực hiện điều khiển lại các đáp trả từ máy server tới máy client Cổng mặc định được sử dụng bởi giao thức này là 554
Hình 1.3 Các bước trao đổi trong 1 phiên streaming media
Chi tiết về giao thức được mô tả trong chuẩn RFC 2326
1.2.2 Giao thức RTP
RTP (Real-time Transport Protocol) định dạng một gói tin RTP được dùng
để truyền trên luồng dữ liệu video hay audio dựa trên địa chỉ IP RTP được sử dụng trong phiên giao dịch giữa các hệ thống giải trí hoặc giao tiếp mà có triển khai kỹ
Trang 22thuật streaming video như là telephony, ứng dụng hội họp từ xa, hệ thống giám sát bằng hình ảnh dựa trên IP
RTP được sử dụng kết hợp với giao thức RTCP ( RTP Control Protocol ) Trong đó, RTP được sử dụng để đóng gói các frame dữ liệu ( audio và video) để truyền trên luồng dữ liệu thì RTCP được sử dụng để giám sát chất lượng của dịch
vụ (QoS) hoặc để thống kê theo các tiêu chí trong quá trình truyền tải Thường thì giao thức RTP sử dụng cổng có số hiệu chẵn còn giao thức RTCP sử dụng cổng có
số hiệu lẻ
RTP được thiết kế cho quá trình streaming theo thời gian thực từ theo kiểu điểm tới điểm Giao thức này cung cấp tiện ích để dò ra những gói tin RTP đã quá hạn Trên thực tế, gói tin RTP sử dụng địa chỉ IP trên mạng để định danh các máy tính gửi và nhận RTP cũng hỗ trợ truyền dữ liệu tới nhiều điểm đích thông qua địa chỉ IP multicast
RTP được phát triển bởi tổ chức Audio / Video Transport của tổ chức tiêu chuẩn IETF RTP được sử dụng kết hợp với các giao thức khác như H.323 và giao thức RTSP Chuẩn RTP định nghĩa một cặp giao thức làm việc với nhau đó là RTP
và RTCP RTP được sử dụng để truyền tải dữ liệu đa phương tiện và giao thức RTCP được sử dụng để gửi các thông tin điều khiển với các tham số QoS
Các giao thức thành phần: Đặc tả RTP gồm 2 giao thức con là RTP và RTCP Giao thức truyền, RTP, quy định cách thức truyền dữ liệu theo thời gian thực Thông tin được cung cấp bởi giao thức này bao gồm thời gian đồng bộ (timestamps), số thứ tự gói tin (phục vụ cho việc tìm gói tin bi lạc ) và chi phí cho việc mã hóa định dạng dữ liệu
Giao thức điều khiển, RTCP được sử dụng cho việc kiểm tra chất lượng (QoS) luồng dữ liệu và thực hiện đồng bộ giữa các luồng dữ liệu So với RTP, thì băng thông của RTCP sẽ nhỏ hơn, vào cỡ 5%
Một giao thức cho phép miêu tả dữ liệu đa phương tiện nhưng không bắt buộc phải kèm theo là giao thức miêu tả phiên ( Session Description Protocol – SDP) Phiên ( Session ): Một phiên RTP được thiết lập cho mỗi luồng dữ liệu Một
Trang 23phiên bao gồm một địa chỉ IP với một cặp cổng của giao thức RTP và RTCP Ví dụ, các luồng video và audio sẽ có các phiên RTP khác nhau, bên nhận sẽ nhận một cách riêng biệt giữa dữ liệu video và audio thông qua 2 cổng khác nhau cho 2 giao thức RTP và RTCP Thường thì số hiệu cổng của RTP là một số chẵn trong khoảng
1024 tới 65535 và cổng của RTCP là một số lẻ kế tiếp
1.2.3 Giao thức SIP
SIP (Session initial protocol – giao thức khởi tạo phiên) là giao thức đầu tiên
hỗ trợ phiên đa người dùng với dữ liệu đa phương tiện Và hiện nay trở thành một đặc tả của tổ chức Internet Engineering Task Force (IETF)
Ngày nay, để tăng số lượng kênh dịch vụ, các nhà cung cấp dịch vụ viễn thông hướng tới phát triển các dịch vụ trên nền tảng SIP như: điện thoại nội bộ và điện thoại đường dài, các dịch vụ tin nhắn (IM), voice message, push-to-talk, truyền thông đa phương tiện… SIP đang được phát triển rất mạnh mẽ cả về phần mềm và phần cứng Ngày càng có nhiều máy điện thoại IP, các hệ thống máy phục vụ (server), các cổng VOIP gateway, tất cả đều sử dụng SIP …SIP được phát triển dần dần từ các giao thức có trước đó: HTTP và SMTP Tuy SIP dùng một hệ thống user
và server riêng, nhưng SIP không hoạt động một cách biệt lập SIP hoạt động cùng với hàng loạt các giao thức trước đó để thực hiện các việc như: authentication, location, quản lý chất lượng tiếng nói,… • SIP là một giao thức thế hệ mới Với đặt điểm: Linh hoạt, extensible và tính mở, SIP đã làm nổi bật sức mạnh của Internet và các mạng di động trên nền IP , tạo ra các dịch vụ thế hệ mới
Tuy nhiên trong đề tài này sẽ không tập trung vào SIP mà chỉ sử dụng RTSP
Trang 24dạng nén nâng cao hiệu quả nén hình cao hơn các định dạng nén thông thường như MPEG-4 hoặc MPEG-2
Một số đặc điểm nổi bật của H264 so với các chuẩn nén thông thường như:
- Kích thước khối ảnh có thể thay đổi được …;
- Độ chính xác của vector bù chuyển động cao;
- Tham chiếu nhiều ảnh bù chuyển động;
- Truyền hình quảng bá qua vệ tinh, cáp, mặt đất…;
- Truyền hình tương tác video theo yêu cầu (VoD);
- Lưu trữ đĩa quang, băng từ, DVD;
- Tích hợp dịch vụ qua ISDN, DSL, LAN, mạng di động, modem;
- Nhắn tin đa phương tiện DMS qua ISDN, DSL, LAN, mạng di động;
- Là tiêu chuẩn cho các ứng dụng hình ảnh như đĩa Blu-ray, đầu ghi hình
camera, máy quay phim, đầu thu kỹ thuật số;
- Trong các dịch vụ phát video như Youtube, Vimeo, iTunes Store ;
- Các phần mềm web như Adobe Flash, Microsoft Silverlight, HTML5
Có thể thấy H264 được sử dụng rất nhiều trong các ứng dụng phát dữ liệu video thời gian thực và hiện nay đang là chuẩn nén phổ biến nhất và đó là lý
do đề tài chọn H264 làm đối tượng để phân tích
Trang 251.3.2 Cơ chế hoạt động
1.3.2.1 Bộ mã hóa và giải mã
Bộ mã hóa:
Hình 1.4 Bộ mã hóa H264
Điểm khác biệt của H.264 so với các bộ mã hóa khác là có sự lựa chọn chế
độ mã hóa liên ảnh (Inter) hoặc trong ảnh (Intra) Chế độ mã hóa trong ảnh cho phép một MB có thể được nội suy từ giá trị các điểm ảnh ở MB lân cận trong cùng ảnh và nhờ đó làm tăng hiệu quả nén trong miền không gian
Quá trình mã hóa được thuộc hiện theo các bước:
- Fn là khung hoặc field được chia nhỏ thành các macroblock, mỗi block sẽ
được mã hoá theo chế độ intra hoặc inter
- Trong chế độ intra, thành phần được dự đoán P (ở đây có thể là các mẫu)
được suy ra từ các mẫu đã được mã hóa hoặc đã được giải mã hay khôi phục trong cùng 1 slice, trong đó uF'n là những mẫu chưa được lọc được dung cho việc xác định P
- Trong chế độ inter, thành phần được đoán P được suy ra nhờ dự đoán bù
chuyển động (motion-compensated prediction) từ 1 đến 2 khung đã mã hoá trước đó
Trang 26- Hiệu của thành phần được dự đoán P và block hiện tại là block hiệu Dn
Block hiệu Dn được biến đổi DCT và lượng tử hoá tạo thành một nhóm
hệ số biến đổi đã lượng tử hoá, các hệ số này sẽ được sắp xếp lại và mã hoá entropy Các hệ số lượng tử và các thông tin cần thiết để giải mã từng block trong Macroblock như chế độ mã hoá nào, tham số lượng tử, thông tin của véc tơ chuyển động được nén thành bitstream, qua NAL (Netword Abstraction Layer ) để truyền đi hay lưu trữ
1.3.2.2 Cấu trúc
Hình 1.6 Cấu trúc H264
Trang 27H.264 phân biệt lớp mã hóa video (Video Coding layer VCL) và lớp mạng trừu tượng (Network Abstraction Layer – NAL) Đầu ra của quá trình mã hóa là dữ liệu lớp mã hóa video VCL (chuỗi bit biểu diễn dữ liệu video đã được mã hóa) sẽ được ánh xạ vào các đơn vị của lớp mạng trừu tượng- NAL trước khi truyền dẫn hay lưu trữ NAL cho phép tùy biến đơn giản và hiệu quả trong việc sử dụng VCL cho nhiều loại hệ thống khác nhau NAL tạo điều kiện cho khả năng lập bản đồ dữ liệu H.264 / AVC VCL để vận chuyển các lớp như:
- RTP / IP cho bất kỳ loại đường dây thời gian thực và không dây;
- Dịch vụ Internet (đàm thoại và streaming);
1.3.2.3 Một số khái niệm cơ bản
a) Slice
Hình 1.7 Minh họa Slice trong 1 khung hình
Trang 28Một ảnh video được chia thành một hay nhiều slice Mỗi slice bao gồm số nguyên các khối macro Số lượng khối macro trong một bức ảnh có thể không cố định Có sự phụ thuộc lẫn nhau tối thiểu giữa các slice đã được mã hóa để giúp giảm sự lan truyền lỗi Chuẩn mã hoá H.264 có 5 loại slice được mã hóa và một ảnh được mã hóa có thể bao gồm nhiều loại slice khác nhau (Bảng 1.1), ví dụ ảnh được
mã hóa trong profile cơ bản có thể bao gồm các slice I và P và ảnh được mã hóa ở profile chính hay mở rộng có thể gồm slice I,P,B Header slice (phần thông tin mào đầu) định nghĩa loại slice và ảnh mã hóa mà slice đó thuộc về (chi tiết trong Bảng 1.1) và có thể kèm theo các thông tin hướng dẫn liên quan đến quản lý ảnh tham chiếu Phần dữ liệu của slice bao gồm chuỗi các khối macro được mã hóa và chỉ thị
bỏ qua (không được mã hóa) khối macro Mỗi khối macro bao gồm chuỗi các thành phần header và dữ liệu dư thừa được mã hóa
Bảng 1.1 Loại Slice
I(Intra) Chỉ bao gồm khối macro I (mỗi khối hoặc khối
macro được dự đoán từ dữ liệu được mã hóa trước
đó trong cùng một slice)
Tất cả
P (Predicted) Bao gồm khối macro P (mỗi khối macro hoặc vùng
macro được dự đoán từ danh sách các ảnh trong list 0 hoặc là khối macro I
Mở rộng hoặc chính
SP (Switching P) Tạo điều kiện thuận lợi cho việc chuyển đổi giữa
các luồng dữ liệu đã được mã hoá, chứa macroblock loại P hoặc I
Mở rộng
SI (Switching I) Tạo điều kiện thuận lợi cho việc chuyển đổi giữa
các luồng dữ liệu đã được mã hoá, chứa macroblock loại SI (một dạng đặc biệt của macroblock mã hoá kiểu intra
Mở rộng
Trang 29b) Macroblock
Hình 1.8 Minh họa ví trị Macroblock trong Slice
Mỗi Slice sẽ bao gồm một hay nhiều Macroblock Một khối macro bao gồm các dữ liệu được mã hóa ứng với vùng 16x16 mẫu của khung video (16x16 mẫu độ chói, 8x8 Cb và 8x8 Cr) và bao gồm các thành phần cú pháp theo bảng dưới Khối macro được đánh số theo thứ tự quét trong khung Các thông tin về một Macroblock được mô tả trong trường tiêu đề (Bảng 1.2)
Bảng 1.2 Tiêu đề Macroblock
Mb_type Xác định liệu khối macro là loại I hay P, xác định kích cỡ một
vùng trong khối macro Mb_pred Xác định chế độ mã hóa trong ( khối macro intra), danh sách
tham chiếu List 0 hay List 1 và mã hóa các vector chuyển động khác nhau cho mỗi phần của khối macro
Sub_mp_pred Xác định kích cỡ khối macro con Danh sách tham chiếu List 0
hay 1 cho mỗi vùng khối macro và mã hóa các vector chuyển động khác nhau cho mỗi vùng con
Coded_block
_pattern
Xác định khỗi 8x8 nào ( độ chói hay sắc) sẽ mang hệ số biến đổi
Mb_qp_delta Thay đổi tham số lượng tử hóa
Residual Hệ số biến đổi đã được mã hóa ứng với mẫu dư thừa sau khi dự
đoán
Trang 30c) Ảnh tham chiếu(Reference Picture)
Hình 1.9 Ảnh tham chiếu và bù chuyển động
Bộ mã hóa H.264 có thể sử dụng hai hoặc nhiều các ảnh được mã hóa trước
đó để làm tham chiếu cho dự đoán bù chuyển động cho mã hóa ngoài các khối macro hoặc phân tách khối macro Điều này cho phép bộ mã hóa tìm kiếm khối macro giống nhất với khối macro được tách ra từ bức ảnh vừa được mã hóa Bộ mã hóa và giải mã luôn giữ một hoặc hai danh sách các ảnh tham chiếu, bao gồm ảnh
đã vừa được mã hóa hay giải mã (xuất hiện trước hoặc sau ảnh hiện tại) Mã hóa ngoài các khối macro hay vùng của khối macro trong slice P được dự đoán từ một danh sách các ảnh –list 0 Mã hóa ngoài khối macro và vùng các khối macro trong slide B có thể được dự đoán từ hai danh sách list 0 và list 1
d) Profile
Hình 1.10 Các Profile trong H264
Trang 31H.264 định nghĩa 3 profile trong đó mỗi profile hỗ trợ 1 tập cụ thể các hàm mã hóa và chỉ ra những gì đươc yêu cầu của bộ mã hóa/giải mã phù hợp với từng profile trong Hình 1.10 Base profile hỗ trợ mã hóa trong và liên khung (sử dụng
slice I và slice P) và phương pháp mã hóa entropy CAVLC Main profile bao gồm video quét xen kẽ, mã hóa liên khung sử dụng slice B, mã hóa liên khung dùng dự đoán có trọng số và phương pháp mã hóa entropy CABAC Extended profile không
hỗ trợ video quét xen kẽ và phương pháp mã hóa entropy CABAC nhưng có thêm chế độ cho phép việc chuyển đổi giữa các luồng bit được mã hóa Ứng dụng tiềm năng của profile Baseline bao gồm thoại video, hội thảo truyền hình, và truyền thông không dây Ứng dụng tiềm năng của Main profile là truyền hình quảng bá và lưu trữ dữ liệu Profile mở rộng có thể hữu ích trong ứng dụng streaming Tuy nhiên mỗi profile có sự mềm dẻo đủ để hỗ trợ một loại ứng dụng khác nhau
1.4 Giải pháp bảo mật dữ liệu video thời gian thực bằng phương pháp mật mã học
Tính khả dụng thông tin đa phương tiện đã tăng đáng kể với sự ra đời của các thiết bị di động Nhưng với sự sẵn có này vấn đề về duy trì sự an toàn bảo mật của thông tin gặp nhiều thách thức Nhiều phương pháp đã được sử dụng hoặc đề xuất
để cung cấp bảo mật cho việc truyền thông tin qua mạng Trong số đó, bảo mật thông tin bằng phương pháp mật mã hạng nhẹ là một phương pháp phổ biến được nhiều nghiên cứu và đề xuất
Ngày nay có rất nhiều phương pháp mã hóa và được chia thành 2 loại chính là mật mã khóa công khai và mật mã khóa bí mật Để áp dụng một phương pháp mã hóa vào dữ liệu đa phương tiện mã vẫn giữ được tính khả dụng là một công việc rất khó khăn Hơn nữa không có phương pháp chính thức nào được công bố để mã hóa video Vì vậy cần phân tích các giải pháp mã hóa để tìm được phương pháp mã hóa phù hợp với các yêu cầu thực tế
1.4.1 Mật mã khóa công khai
Đối với một hệ mật khóa công khai, lượng tài nguyên cần thiết cho các primitives khóa công khai lớn hơn nhiều so với hệ mật khóa đối xứng Việc thiết kế
Trang 32được một thuật toán mật mã khóa công khai thuộc hạng nhẹ khó hơn so với việc thiết kế ra một thuật toán mật mã đối xứng hạng nhẹ Chính vì vậy mà có rất ít các
hệ mật mã khóa công khai được coi là hạng nhẹ
Một thuật toán mật mã khóa công khai như vậy đã được đề xuất ứng dụng trong thực tế là GPS (tên ba tác giả của thuật toán là Marc Girault, Guillaume Poupard và Jacques Stern) [9]
GPS được gọi là thuật toán “khi đang chạy” (on the fly), do ứng dụng điển hình của GPS là xác thực xe ôtô “khi đang chạy” tại điểm trả tiền cầu đường Ý tưởng đầu tiên là trang bị cho mỗi xe ôtô được cấp phép một thẻ thông minh không tiếp xúc với giá thành thấp Khi xe chạy qua một điểm thu phí, nó không phải dừng
mà chỉ cần thực hiện một xác thực GPS để chứng minh rằng nó là một người dùng hợp pháp Trong một ứng dụng như vậy, thời gian cho phép để truyền dữ liệu và thực hiện các tính toán trực tuyến là rất ngắn, khoảng 100 ms
1.4.2 Mật mã khóa bí mật
1.4.2.1 Mã hóa dòng
Mật mã dòng (stream cipher) là một kiểu hệ thống mật mã đối xứng có tính chất thay thế Mật mã dòng dựa trên ý tưởng của mật mã một lần (OTP - One Time Pad) hay còn gọi là mật mã Vernam Với OTP, khóa k phải đáp ứng 3 điều kiện sau đây: [10]
- Độ dài của khóa phải bằng kích thước bản rõ;
- Khóa phải được chọn hoàn toàn ngẫu nhiên (truly random);
- Khóa chỉ được sử dụng một lần
Nếu thỏa mãn 3 điều kiện trên, hệ mã OTP sẽ là an toàn tuyệt đối (perfect security) theo định lý của Clause Shannon, tức là kẻ tấn công sẽ không thể biết được thông tin gì của bản rõ m chỉ từ bản mã c Tuy nhiên việc chiều dài khóa phải bằng chiều dài của bản rõ cũng chính là nhược điểm vì nếu có một cách để trao đổi khóa an toàn, thì đã có thể dùng ngay cách đó để trao đổi bản rõ luôn OTP được coi
là không thực tế để sử dụng rộng rãi
Trang 33Thuật toán mã hóa dòng giải quyết những vấn đề này bằng cách hy sinh một mức độ bảo mật Một khóa k ngẫu nhiên được sinh ra từ một chuỗi số có độ dài nhỏ hơn rất nhiều so với bản rõ, và dùng một hàm tạo số ngẫu nhiên (Pseudo Random Generator - PRG) để mở rộng độ dài Tuy nhiên, thực tế là các khóa này không hoàn toàn ngẫu nhiên gây ra các lo ngại về vấn đề an toàn của thuật toán Khóa k phải đủ ngẫu nhiên để đảm bảo rằng nếu kẻ tấn công biết keystream cũng không thể khôi phục khóa bí mật hoặc lấy được trạng thái bên trong của mật mã
Một vấn đề khác của mã hóa dòng là chu kỳ khóa Chu kỳ khóa được hiểu là
số lần khóa sinh ra được sử dụng trước khi khóa được lặp lại Nếu hết chu kỳ khóa
và khóa được lặp lại, kẻ tấn công có khả năng giải mã các bit mã hóa tuần tự Vì vậy, thời hạn keystream phải lớn hơn kích thước của bản rõ sẽ được mã hóa Nếu thời kỳ keystream hết, một khóa khác phải được sử dụng để khởi tạo lại mật mã
Dù mật mã dòng có vấn đề trong việc quản lý và duy trì khóa nhưng với đặc điểm nhanh và nhẹ, mật mã dòng vẫn được phát triển và liên tục cập nhật mới Điển hình có dự án ECRYPT II eSTREAM tổ chức năm 2004-2008 chọn một danh mục đầu tư đầy hứa hẹn các thuật toán mã dòng mới Các danh mục đầu tư hiện tại eSTREAM chứa 7 thuật toán Grain‐ 128, Trivium, MICKEY 2.0, MICKEY‐ 128 2.0, … Ngoài ra còn nhiều thuật toán khác như: BEAN, Quavium, Cavium, A2U2, WG‐ 7, WG‐ 8 đều đang được lên ý tưởng cải tiến và phát triển
Một số hệ mã khối nổi tiếng đó là DES và AES Kể từ khi giải thuật mã hóa tiên tiến AES đã được lựa chọn, nhiều mã hóa khối với thuộc tính hạng nhẹ đã được