THUẬT TOÁN MÃ HÓA DES

Một phần của tài liệu Xây dựng chương trình mã hóa thông tin cần bảo vệ trong ảnh DICOM (Trang 40)

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 (adsbygoogle = window.adsbygoogle || []).push({});

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.

4.1 ĐỀ XUẤT CÁC GIẢI PHÁP BẢO VỆ THÔNG TIN ẢNH DICOM

Dựa trên việc phân tích nhu cầu của các khâu cần bảo vệ thông tin trong việc sử dụng ảnh DICOM và nghiên cứu về chuẩn, ảnh DICOM, lý thuyết mã hóa em đề xuất các giải pháp bảo vệ thông tin cụ thể như sau:

Trước hết phải xác định và truy cập được nội dung các thông tin cần bảo vệ: Kỹ thuật đọc, ghi, kết xuất thông tin trong ảnh DICOM

Đối với thông tin ảnh lưu trữ trên máy tính(Cục bộ): Ngoài các biện pháp kỹ thuật bảo vệ, an toàn thông tin của Hệ điều hành, truyền thông qua mạng máy tính, hệ quản trị CSDL, thì biện pháp mã hóa thông tin sẽ sử dụng kỹ thuật mã hóa đối xứng.

Đối với khâu truy cập của nhân viên y tế vào cơ sở dữ liệu ảnh: Sử dụng kết hợp kỹ thuật mã hóa đối xứng và mã hóa bất đối xứng: Kỹ thuật mã

hóa lai.

Đối với khâu trao đổi thông tin giữa cá nhân các nhân viên y tế hoặc một nhóm nhỏ các nhân viện y tế sử dụng kỹ thuật mã hóa đối xứng. Nếu hội chẩn trực tuyến có thể mã hóa thông tin cá nhân của bệnh nhân bằng kỹ thuật mã hóa đối xứng hoặc mã hóa bất đối xứng kết hợp với thiết lập

Đối với việc trao đổi thông tin giữa Bác sỹ và bệnh nhân: Đảm bảo xác thực thông tin ảnh : Chữ ký số hoặc các phương pháp xác thực thông tin khác.

Đối với các thông tin ảnh phục vụ công tác đào tạo: Mã hóa các thông tin cá nhân của bệnh nhân bằng kỹ thuật mã hóa đối xứng

Đối với việc trao đổi thông tin giữa các bệnh viện: Thiết lập quy chế trao đổi thông tin cụ thể, các chuẩn trao đổi thông tin, các thông tin được mã

hóa kết hợp với các phương pháp xác thực thông tin.

4.2 PHÂN TÍCH THIẾT KẾ CHƢƠNG TRÌNH

Dựa trên các tìm hiều về các quy định của chuẩn DICOM trong đó các thông tin trong một file ảnh DICOM được định nghĩa là các đối tượng thông tin mà việc truy xuất đến chúng phải tuân thủ các quy định của chuẩn này. Các thông tin được định nghĩa trong các lớp dữ liệu có các thuộc tính và chuẩn này cũng quy định lớp dịch vụ truy vấn / truy xuất cho các hoạt động trên các đối tượng thông tin ảnh.

Cấu trúc dữ liệu và mã hóa thông tin trong ảnh DICOM cho thấy tổ chức lưu trữ thông tin trong một ảnh DICOM khá phức tạp và nhiều thông tin. Mỗi một tệp ảnh DICOM lưu trữ các thông tin về cấu trúc tệp, thông tin cá nhân bệnh nhân, chẩn đoán, thiết bị tạo ảnh, hãng thiết bị .... trong phần tiêu đề của file có thể lên tới vài trăm byte và có thể bổ sung cập nhật thêm tùy thuộc người dùng trong quá trình tạo ảnh (chiếu chụp CT, MIR). Cấu trúc tiêu đề của ảnh DICOM cũng khác với một số ảnh thông thường như .tif hoặc bitmap .bmp chỉ khoảng một vài byte (7- 10 byte). Phần thông tin ảnh DICOM chiếm dung lượng lớn được lưu trữ ở phần sau của tệp và có thể có nhiều chuẩn nén ảnh khác nhau được sử dụng. Phần dữ liệu ảnh trong DICOM có thể được kết xuất ra các định dạng ảnh khác như .png ; .bmp; .jpg hay .raw ...

Trong an toàn thông tin nói chung có rất nhiều giải pháp khác nhau nhằm đảm bảo dữ liệu được lưu trữ trên máy tính và truyền thông trên mạng. Vấn đề bảo vệ thông tin trong ảnh DICOM cũng đã được đề cập, điều quan trọng là xác định thông tin nào cần bảo vệ và bảo vệ trong các trường hợp nào. Trong tài liệu Ảnh DICOM của tác giả Oleg S Pianykh (Berlin ; Heidelberg : Springer, 2008)

tại phần DICOM Security đã khuyến cáo việc lựa chọn các thông tin cần "Nặc danh" phải cẩn thận tránh làm cho dữ liệu ảnh DICOM không đầy đủ và không hợp lê.

Mã hóa thông tin có nhiều thuật toán có những ưu điểm và hạn chế khác nhau, thuật toán mã hóa DES là thuật toán mã hóa khối có một số ưu điểm như tốc độ mã và giải mã nhanh, quản lý khóa thuận tiện, dễ sử dụng và mức độ bảo

mật cũng đã được khẳng định. Bản thân DES đã có mở rộng nhằm tăng tính bảo mật như TriDES cũng được sử dụng trong chương trình DICOMIE này. Hiện nay một số thuật toán mã hóa dữ liệu khác như IDEA, AES xét về mức độ bảo mật và tốc độ mã hóa còn nhanh hơn DES, nhưng đối với những dữ liệu cần bảo mật trong mỗi ảnh DICOM riêng biệt thì không quá lớn, và hơn thế nữa mật mã DES ra đời từ rất sớm đã được đưa vào ứng dụng trên phạm vi quốc tế so với IDEA, AES. Do vậy, loại mã này đã được thử thách qua thực tiễn, còn những thông tin cá nhân trong ảnh DICOM không đòi hỏi độ bảo mật phải cao như nhiều thông tin nhạy cảm khác, hệ mật mã DES theo chúng tôi là đủ an toàn để bảo vệ thông tin trong ảnh DICOM. Vì vậy sau khi nghiên cứu tìm hiểu một số hệ mật mã khối, em đã chọn DES làm đối tượng cho việc ứng dụng vào luận văn của em.

4.3 NGÔN NGỮ LẬP TRÌNH

Chương trình DICOMIE được lập trình bằng C# , đây là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft.

C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với các sản phẩm Turbo Pascal, Delphi, J++, WFC.

Các thư viện trong chương trình liên quan đến việc xử lý can thiệp vào ảnh DICOM được sử dụng là thư viện mã nguồn mở DVTk_Library.

4.4 CÁC CHỨC NĂNG CHÍNH CỦA CHƢƠNG TRÌNH 4.4.1 Chức năng mã hóa thông tin trong từng ảnh DICOM 4.4.1 Chức năng mã hóa thông tin trong từng ảnh DICOM

Đọc file ảnh DICOM

Hiển thị thông tin bệnh nhân Chọn thông tin cần mã hóa

Đưa thông tin cần mã vào chức năng mã hóa Mã hóa thông tin bằng DES hoặc TriDES Đưa lại thông tin đã mã hóa vào ảnh DICOM Lưu lại tệp tin DICOM

Giải mã thông tin từ File DICOM có thông tin được mã hóa (adsbygoogle = window.adsbygoogle || []).push({});

4.4.2 Chức năng mã hóa thông tin theo yêu cầu trong ảnh DICOM

Đọc file ảnh DICOM

Lựa chọn hoặc bỏ bớt một số thông tin Mã hóa thông tin bằng DES

Lưu lại tệp tin DICOM

Giải mã thông tin từ File DICOM có thông tin được mã hóa

4.4.3 Chức năng mã hóa thông tin theo yêu cầu trong nhiều ảnh DICOM

Đọc file ảnh DICOM, cho phép lựa chọn nhiều tệp DICOM Lựa chọn hoặc bỏ bớt một số thông tin cần mã hóa theo yêu cầu Mã hóa thông tin bằng DES

Lưu lại các tệp tin DICOM

Giải mã thông tin từ File DICOM có thông tin được mã hóa

4.4.4 Chức năng kết xuất thông tin ảnh trong DICOM

Đọc file ảnh DICOM

Hiển thị phần thông tin ảnh Data Image. Lưu lại tệp tin ảnh DICOM sang dạng .JPG

4.4.5 Chức năng kết xuất thông tin text trong DICOM

Đọc file ảnh DICOM

Hiển thị phần thông tin text.

Lưu lại thông tin text DICOM sang dạng .TXT

4.4.6 Chức năng mã hóa nhiều tệp ảnh (toàn bộ ảnh DICOM hoặc phần thông tin ảnh đã kết xuất) thông tin ảnh đã kết xuất)

Chọn file ảnh DICOM, cho phép lựa chọn nhiều tệp. Mã hóa toàn bộ các file được lựa chọn

Giải mã các file đã được mã hóa

4.5 KỸ THUẬT VÀ HƢỚNG DẪN SỬ DỤNG CHƢƠNG TRÌNH 4.5.1 Chức năng mã hóa thông tin trong từng ảnh DICOM 4.5.1 Chức năng mã hóa thông tin trong từng ảnh DICOM

Sử dụng hàm LoadDCMFile(string dicomFile) đọc tệp , hàm

GetDetailedLogging();AddDatasetInfoToDataGrid();

dcmFile.Read(ofd.FileName, _MainThread); truy xuất và hiển thị thông tin từ ảnh DICOM. Chức năng này cho phép người dùng hiển thị các thông tin trong header của từng ảnh DIOM, lựa chọn thông tin trong các thẻ cần mã hóa.

Vào nút Khởi động Chọn file DICOM Hiển thị màn hình thông tin thẻ :

Một phần của tài liệu Xây dựng chương trình mã hóa thông tin cần bảo vệ trong ảnh DICOM (Trang 40)