2 .1GIỚI THIỆU CHUẨN DICOM
3.2 THUẬT TOÁN MÃ HÓA DES
3.2.1 Giới thiệu về DES
DES (viết tắt của Data Encryption Standard, hay Tiêu chuẩn Mã hóa Dữ liệu) là một phương pháp mật mã hóa được FIPS (Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976. Sau đó chuẩn này được sử dụng rộng rãi trên phạm vi thế giới. Ngay từ đầu, thuật toán của nó đã
gây ra rất nhiều tranh cãi, do nó bao gồm các thành phần thiết kế mật, độ dài khóa tương đối ngắn, và các nghi ngờ về “cửa sau” để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa. Do đó, DES đã được giới nghiên cứu xem xét rất kỹ lưỡng, việc này đã thúc đẩy hiểu biết hiện đại về mật mã khối (block cipher) và các phương pháp thám mã tương ứng.
Hiện nay DES được xem là không đủ an toàn cho nhiều ứng dụng. Nguyên nhân chủ yếu là độ dài 56 bít của khóa là quá nhỏ. Khóa DES đã từng bị phá trong vòng chưa đầy 24 giờ. Đã có rất nhiều kết quả phân tích cho thấy những điểm yếu về mặt lý thuyết của mã hóa có thể dẫn đến phá khóa, tuy chúng không khả thi trong thực tiễn. Thuật toán được tin tưởng là an toàn trong thực tiễn có dạng Triple (thực hiện DES ba lần), mặc dù trên lý thuyết phương pháp này vẫn có thể bị phá. Gần đây DES đã được thay thế bằng AES (Advanced Encryption Standard, hay Tiêu chuẩn Mã hóa Tiên tiến).
3.2.2 Nguồn gốc lịch sử và quá trình thay thế DES
Khoảng những năm 70, tiến sĩ Horst Feistel đã đặt nền móng đầu tiên cho chuẩn mã hóa dữ liệu DES với phương pháp mã hóa Feistel Cipher. Vào năm 1976 Cơ quan bảo mật quốc gia Hoa Kỳ (NSA - Nationnal Security Agency) đã công nhận DES là chuẩn mã hóa dữ liệu . Kích thước khóa ban đầu là 128 bit nhưng trong bản công bố FIPS (Federal Information Processing Standard) kích thước khóa được rút xuống còn 56 bit. Sau đó được công nhận là chuẩn Quốc tế của ISO.
Từ cuối thập niên 1980, đầu thập niên 1990, xuất phát từ những lo ngại về độ an toàn và tốc độ thấp khi áp dụng bằng phần mềm, giới nghiên cứu đã đề xuất khá nhiều thuật toán mã hóa khối để thay thế DES. Những ví dụ tiêu biểu bao gồm: RC5, Blowfish, IDEA (International Data Encryption Algorithm, hay Thuật toán mã hóa dữ liệu quốc tế), NewDES, SAFER, CAST5 và FEAL. Hầu hết những thuật toán này có thể sử dụng từ khóa 64 bit của DES mặc dù chúng thường được thiết kế hoạt động với từ khóa 64 bit hay 128 bit.
Ngay bản thân DES cũng có thể được sử dụng một cách an toàn hơn. Những người sử dụng DES trước đây có thể dùng Triple DES (hay TDES). Đây là phương pháp được một trong những người phát minh ra DES miêu tả và kiểm tra. Triple DES sử dụng DES ba lần cho một văn bản với những khóa khác nhau. Hiện nay Triple DES được xem là an toàn mặc dù tốc độ thực hiện khá chậm. Một phương pháp khác ít đòi hỏi khả năng tính toán hơn là DES - X với việc tăng độ dài từ khóa bằng cách thực hiện phép XOR từ khóa với phần thêm trước và sau khi thực hiện DES. Một phương pháp nữa là GDES được đề xuất làm
tăng tốc độ mã hóa nhưng nó được chứng tỏ là không an toàn trước tấn công vi sai (differential cryptanalysis).
Năm 2001, sau một cuộc thi quốc tế, NIST đã chọn ra một thuật toán mới - AES, để thay thế cho DES. Tác giả của thuật toán được biết dưới tên là Rijndael. Những thuật toán khác có tên trong danh sách cuối cùng của cuộc thi AES bao gồm: RC6, Serpent, MARS và Twofish.
3.2.3 Tổng quan của thuật toán DES
Thuật toán DES là một tổ hợp chặt chẽ và phức tạp của 2 khối mã hóa thành phần cơ bản là Thay thế(là thay thế một cách có hệ thống một số mẫu bit bằng các mẫu khác) và Hoán vị(sự sắp xếp lại các bít).
DES là thuật toán mã hóa khối: nó xử lý từng khối thông tin của bản rõ có độ dài xác định và biến đổi theo những quá trình phức tạp để trở thành khối thông tin của bản mã có độ dài không thay đổi. Trong trường hợp của DES, độ dài mỗi khối là 64 bit. DES cũng sử dụng khóa để cá biệt hóa quá trình chuyển đổi. Nhờ vậy, chỉ khi biết khóa mới có thể giải mã được văn bản mã. Khóa dùng trong DES có độ dài toàn bộ là 64 bit. Tuy nhiên chỉ có 56 bit thực sự được sử dụng; 8 bit còn lại chỉ dùng cho việc kiểm tra. Vì thế, độ dài thực tế của khóa chỉ là 56 bit.
Thuật toán chỉ sử dụng các phép toán logic và số học cơ bản trên các số 64 bit do đó rất phù hợp để thực hiện bằng phần mềm trên máy tính phổ dụng nhất. Mặc dù phức tạp nhưng thuật toán có tính lặp lại làm cho nó thích hợp để thực hiện trên một chíp chuyên dụng nhỏ gọn.
3.2.5 Giải mã DES
Cùng một thuật toán DES, có thể sử dụng cho cả mã hóa và giải mã. Kết quả này là hoàn toàn đúng bởi vì :
Chu kỳ thứ j xuất phát từ chu kỳ thứ j - 1 theo cách sau đây : (1) L j = R j -1
(2) R j = L j -1 f(R j -1, k j)
Hai phương trình thể hiện rằng, kết quả của mỗi chu kỳ chỉ phụ thuộc vào chu kỳ trước đó
Viết lại phương trình 1, 2 ta có : (1) R j -1 = L j (3)
(2) R j f(R j -1, k j ) = L j -1 f(R j -1, k j ) f(R j -1, k j) Hay : R j f(R j -1, k j ) = L j -1
Tức là : L j -1 = R j f(R j -1, k j ) (4) Thay (3) vào (4) ta được :
Từ (3) và (5) cho ta quy tắc nhận lại kết quả chu kỳ trước từ chù kỳ sau. Như vậy ta có thể mã hóa 1 chuỗi ký tự và giải mã chúng thành văn bản rõ chỉ bằng DES. Với DES cùng một hàm f có thể sử dụng cả cho mã hóa và giải mã, chỉ có một điều khác là trình tự lấy các khóa thì ngược nhau giữa quá trình mã hóa và giải mã ( mã hóa bằng k1 đến k16, giải mã bằng k16 đến k1). Việc sử dụng 1 thuật toán để mã hóa và giải mã tạo thuận lợi rất lớn cho việc thực hiện làm phần cứng cũng như làm phần mềm của thuật toán DES.
3.2.6 DES trong thực tế
Mặc dù việc mô tả DES là khá dài dòng song người ta vẫn có thể thực hiện DES rất hữu hiệu bằng cả phần cứng cũng như phần mềm. Các phép tính số học duy nhất cần được thực hiện là phép cộng modul và các xâu bit. Hàm mở rộng, các hộp S và các hộp P cũng như việc tính các giá trị k1 đến k16 đều có thể thực hiện cùng lúc bằng việc tra bảng (trong phần mềm) hay bằng cách nối cứng chúng thành một mạch (trong phần cứng)
Các ứng dụng phần cứng hiện thời có thể đạt được tốc độ mã hóa cực nhanh. Tại hội nghị CRYPTO ‟92 công ty Digital Equipment đã thông báo rằng họ đã chế tạo được một chíp 50 ngàn transistor có thể mã hóa với tốc độ 1GB/s bằng cách dùng nhịp 250 MHz. Giá của chip này khoảng 300$. Tính tới 1991 đã có khoảng 45 ứng dụng phần cứng và chương trình cơ sở của DES được cục tiêu chuẩn Mỹ(NBS) chấp nhận.
Trong thực tế có 4 chế độ hoạt động được phát triển cho DES là : - Chế độ chuyển mã điện tử ECB
- Chế độ phản hồi mã CFB - Chế độ liên kết khối mã CBC - Chế độ phản hồi đầu ra OFB
3.2.7 Triple DES
Triple-DES chính là DES với hai chìa khoá 56 bit. Cho một bản tin cần mã hoá, chìa khoá đầu tiên được dùng để mã hoá DES bản tin đó, kết quả thu được lại được cho qua quá trình giải mã DES nhưng với chìa khoá là chìa khoá thứ hai, bản tin sau qua đã được biến đổi bằng thuật toán DES hai lần như vậy lại được mã hoá DES với một lần nữa với chìa khoá đầu tiên để ra được bản tin mã hoá cuối cùng. Quá trình mã hoá DES ba bước này được gọi là Triple-DES.
CHƢƠNG 4
XÂY DỰNG CHƢƠNG TRÌNH PHẦN MỀM MÃ HÓA THÔNG TIN CẦN BẢO VỆ TRONG ẢNH DICOM
DICOM INFORMATION ENCRYPTION _ DICOMIE
Chương trình phần mềm mã hóa thông tin cần bảo vệ trong ảnh DICOM (DICOMIE) nhằm hiện thực hóa các nhu cầu quản lý, sử dụng ảnh DICOM trong ngành y tế như đã phân tích trong chương 1của luận văn.