CẤU TRÚC DỮ LIỆU VÀ MÃ HÓA CỦA ẢNH DICOM

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 29)

2.2.1 Định dạng ảnh DICOM

Định dạng ảnh DICOM được quy định trong mục 10. Hiện nay DICOM là định dạng ảnh được dùng phổ biến nhất trong y tế. Một file ảnh DICOM ngoài dữ liệu hình ảnh, còn chứa cả những thông tin khác như thông tin về bệnh nhân, về loại máy tạo ra bức ảnh…. Đó cũng là sự khác biệt của định dạng ảnh DICOM so với các định dạng ảnh khác. Một file theo định dạng DICOM thường có phần mở rộng là .dcm.

2.2.2Phần tiêu đề

Phần tiêu đề chứa toàn bộ các thông tin về bệnh nhân, về thiết bị tạo ra bức ảnh và các thông tin quy định các mã hóa dữ liệu: Phương pháp mã hóa, giải mã và các thông tin liên quan .

Cấu trúc tiêu đề như sau:

Đầu tiên là 128 byte File Preamble (offset), các chương trình đọc file DICOM sẽ bỏ qua nội dung chứa trong 128 byte đầu tiên này. Tiếp theo là 4 byte chứa chuỗi „DICM‟. Tiếp theo là các thông tin về file (File Meta Elements). Các thông tin này được tổ chức thành các nhóm, trong mỗi nhóm lại gồm nhiều

Hình 3. Cấu trúc ảnh DICOM

Ví dụ:

Phần tử (0002, 0000) : Group Length (cho biết số byte chứa File Meta Elements)

Phần tử (0002,0010) : Transfer Syntax UID (phương pháp dùng để giải mã dữ liệu trong phần chứa dữ liệu ảnh. Chú ý không áp dụng giải mã với các dữ liệu File Meta.

Nhìn chung, thông tin chứa trong tiêu đề ảnh DICOM khá nhiều, phức tạp. Hình ảnh trên cho thấy một tập tin hình ảnh DICOM Trong ví dụ này, 794 byte đầu tiên được sử dụng cho một tiêu đề định dạng DICOM, trong đó mô tả kích thước hình ảnh và giữ lại thông tin văn bản khác. Kích thước của tiêu đề này khác nhau tùy thuộc vào bao nhiêu tiêu đề thông tin được lưu trữ. Ở đây, tiêu đề định nghĩa một hình ảnh có kích thước 109x91x2 voxels, với độ phân giải dữ liệu 1 byte cho mỗi voxel (vì vậy tổng số kích thước hình ảnh sẽ được 19.838). Các dữ liệu hình ảnh sau thông tin tiêu đề (header và dữ liệu hình ảnh được lưu trữ trong cùng một tập tin).

DICOM yêu cầu một lời mở đầu 128-byte (128 byte này thường tất cả là không), theo sau bởi các chữ cái 'D', 'I', 'C', 'M'. Tiếp theo là thông tin tiêu đề, được tổ chức trong nhóm '. Ví dụ, nhóm 0002hex meta thông tin về nhóm, bao gồm 3 yếu tố: một là định nghĩa các nhóm, hai là lưu trữ phiên bản tập tin và ba là cú pháp chuyển giao.

2.2.3 Dữ liệu ảnh

Phần này chứa các thông tin hình ảnh. Các yếu tố DICOM yêu cầu phụ thuộc vào loại hình ảnh, và được liệt kê trong phần 3 của tiêu chuẩn DICOM. Ví dụ, phương thức hình ảnh này là "MR (xem nhóm: yếu tố 0008:0060), vì vậy nó cần phải có các yếu tố để mô tả thời gian MRI echo. Sự vắng mặt của thông tin này trong hình ảnh này là một hành vi vi phạm các tiêu chuẩn DICOM. Trong thực tế, hầu hết phần mềm đọc định dạng DICOM (bao gồm cả MRIcro và ezDICOM) không kiểm tra sự hiện diện của hầu hết những yếu tố này, giải nén chỉ có các thông tin tiêu đề trong đó mô tả kích thước hình ảnh.

Các tiêu chuẩn trước NEMA cho DICOM, có cấu trúc tương tự nhau với nhiều yếu tố tương tự. Sự khác biệt chính là các định dạng NEMA không có dữ liệu 128-byte bù đắp đệm hoặc ký tự DICM. Ngoài ra, NEMA không xác định rõ ràng muilti-frame (3D) hình ảnh, vì vậy yếu tố 0028,0008 đã không có mặt.

Đặc biệt quan trọng là nhóm: yếu tố 0002:0010. Điều này xác định "Xác định cú pháp chuyển giao duy nhất . Giá trị này thể hiện cấu trúc của các dữ liệu hình ảnh, tiết lộ cho dù dữ liệu đã được nén. Lưu ý rằng một số phần mềm xem ảnh DICOM chỉ có thể view được dữ liệu không nén nguyên bản.

Hình ảnh DICOM có thể được nén bởi cả hai chương trình nén mất dữ liệu phổ biến JPEG (nơi mà một số thông tin tần số cao bị mất) cũng như một chương trình không giảm chất lượng JPEG là hiếm khi nhìn thấy bên ngoài của hình ảnh y tế (Huffman lossless JPEG là hiệu quả hơn thuật toán JPEG-LS). Các mã này được mô tả trong phần 5 của tiêu chuẩn DICOM. Lưu ý rằng cũng như

các báo cáo kỹ thuật nén (nếu có), UID Cú pháp chuyển giao báo cáo thứ tự byte dữ liệu thô. Các máy tính khác nhau lưu trữ giá trị số nguyên khác nhau, vì vậy được gọi là 'về cuối lớn' và 'ít về cuối'. Hãy xem xét một số nguyên 16-bit với giá trị 257 thì byte quan trọng nhất được lưu trữ giá trị 01 (= 255), trong khi các byte ít quan trọng hơn sẽ lưu trữ với giá trị 02. Một số máy tính sẽ lưu giá trị này là 01:02, trong khi những người khác sẽ lưu trữ nó như là 02:01. Do đó, cho dữ liệu với hơn 8-bit cho mỗi mẫu, phần mềm xem DICOM có thể cần trao đổi byte thứ tự của dữ liệu để phù hợp với trật tự được sử dụng bởi máy tính của bạn.

Ngoài ra UID Cú pháp chuyển giao, hình ảnh được quy định bởi các Mẫu điểm ảnh (0028:0002), độ trắc quang (0028:0004), phân phối bit (0028:0100). Đối với hầu hết các hình ảnh MRI và CT, trắc quang là liên tục đơn sắc (ví dụ như thường được mô tả với các điểm ảnh trong màu xám). Trong DICOM, những hình ảnh đơn sắc được biểu diễn 'MONOCHROME1' (giá trị thấp=sáng, giá trị cao=tối) hoặc 'MONOCHROME2 (giá trị thấp = tối, giá trị cao = sáng). Tuy nhiên, nhiều hình ảnh siêu âm và hình ảnh y tế bao gồm màu sắc, và đây là những mô tả bằng cách giải thích khác nhau về quang trắc (ví dụ như Palette, RGB, CMYK, YBR, vv). Một số hình ảnh màu (ví dụ như RGB) lưu trữ 03 mẫu cho mỗi điểm ảnh ( màu đỏ, xanh lá cây và màu xanh), trong khi hình ảnh đơn sắc và paletted thường lưu trữ chỉ có một mẫu cho mỗi hình ảnh. Mỗi lưu trữ hình ảnh 8-bit (256 cubed) hoặc 16-bit cho mỗi mẫu (65.535 cubed), mặc dù một số máy quét lưu dữ liệu trong-12 bit hoặc độ phân giải 32-bit. Vì vậy, một hình ảnh RGB mà các lưu trữ 3 mẫu cho mỗi điểm ảnh 8-bit cho khả năng có thể mô tả 16 triệu màu (256 cubed).

CHƢƠNG 3

LÝ THUYẾT MÃ HÓA VÀ CÁC THUẬT TOÁN 3.1 GIỚI THIỆU MÃ HÓA

3.1.1 Tại sao cần phải sử dụng mã hoá

Thuật toán Cryptography đề cập tới nghành khoa học nghiên cứu về mã hoá và giải mã thông tin. mật mã học là ngành học nghiên cứu về những cách chuyển đổi thông tin từ dạng "có thể hiểu được" thành dạng "không thể hiểu được" và ngược lại và ngược lại. Đây là một phương pháp hỗ trợ rất tốt cho trong việc chống lại những truy cập bất hợp pháp tới dữ liệu được truyền đi trên mạng, áp dụng mã hoá sẽ khiến cho nội dung thông tin được truyền đi dưới dạng mờ và không thể đọc được đối với bất kỳ ai cố tình muốn lấy thông tin đó.

3.1.2 Nhu cầu sử dụng kỹ thuật mã hoá

Không phai ai hay bất kỳ ứng dụng nào cũng phải sử dụng mã hoá. Nhu cầu về sử dụng mã hoá xuất hiện khi các bên tham gia trao đổi thông tin muốn bảo vệ các tài liệu quan trọng hay gửi chúng đi một cách an toàn. Các tài liệu quan trọng có thể là: tài liệu quân sự, tài chính, kinh doanh hoặc đơn giản là một thông tin nào đó mang tính riêng tư.

Như chúng ta đã biết, Internet hình thành và phát triển từ yêu cầu của chính phủ Mỹ nhằm phục vụ cho mục đích quân sự. Khi chúng ta tham gia trao đổi thông tin, thì Internet là môi trường không an toàn, đầy rủi ro và nguy hiểm, không có gì đảm bảo rằng thông tin mà chúng ta truyền đi không bị đọc trộm trên đường truyền. Do đó, mã hoá được áp dụng như một biện pháp nhằm giúp chúng ta tự bảo vệ chính mình cũng như những thông tin mà chúng ta gửi đi. Bên cạnh đó, mã hoá còn có những ứng dụng khác như là bảo đảm tính toàn vẹn của dữ liệu. Tại sao lại có quá nhiều thuật toán mã hoá ?

Theo một số tài liệu thì trước đây tính an toàn, bí mật của một thuật toán phụ thuộc vào phương thức làm việc của thuật toán đó. Nếu như tính an toàn của một thuật toán chỉ dựa vào sự bí mật của thuật toán đó thì thuật toán đó là một thuật toán hạn chế . Một thuật toán hạn chế có tầm quan trọng trong lịch sử nhưng không còn phù hợp trong thời đại ngày nay. Giờ đây, nó không còn được mọi người sử dụng do mặt hạn chế của nó: mỗi khi một user rời khỏi một nhóm thì toàn bộ nhóm đó phải chuyển sang sử dụng thuật toán khác hoặc nếu người đó người trong nhóm đó tiết lộ thông tin về thuật toán hay có kẻ phát hiện ra tính bí mật của thuật toán thì coi như thuật toán đó đã bị phá vỡ, tất cả những user còn lại trong nhóm buộc phải thay đổi lại thuật toán dẫn đến mất thời gian và công sức.

Hệ thống mã hoá hiện nay đã giải quyết vấn đề trên thông qua khoá (Key) là một yếu tố có liên quan nhưng tách rời ra khỏi thuật toán mã hoá. Do các thuật toán hầu như được công khai cho nên tính an toàn của mã hoá giờ đây phụ thuộc vào khoá. Khoá này có thể là bất kì một giá trị chữ hoặc số nào. Phạm vi không gian các giá trị có thể có của khoá được gọi là Keyspace . Hai quá trình mã hoá và giải mã đều dùng đến khoá. Hiện nay, người ta phân loại thuật toán dựa trên số lượng và đặc tính của khoá được sử dụng.

Nói đến mã hoá tức là nói đến việc che dấu thông tin bằng cách sử dụng thuật toán. Che dấu ở đây không phải là làm cho thông tin biến mất mà là cách thức chuyển từ dạng tỏ sang dạng mờ. Một thuật toán là một tập hợp của các câu lệnh mà theo đó chương trình sẽ biết phải làm thế nào để xáo trộn hay phục hồi lại dữ liệu. Chẳng hạn một thuật toán rất đơn giản mã hoá thông điệp cần gửi đi như sau:

Bước 1: Thay thế toàn bộ chữ cái “e” thành số “3” Bước 2: Thay thế toàn bộ chữ cái “a” thành số “4” Bước 3: Đảo ngược thông điệp

Trên đây là một ví dụ rất đơn giản mô phỏng cách làm việc của một thuật toán mã hoá. Sau đây là các thuật ngữ cơ bản nhất giúp chúng ta nắm được các khái niệm: (adsbygoogle = window.adsbygoogle || []).push({});

Sender/Receiver: Người gửi/Người nhận dữ liệu

Plaintext (Cleartext): Thông tin trước khi được mã hoá. Đây là dữ liệu ban đầu ở dạng rõ

Ciphertext: Thông tin, dữ liệu đã được mã hoá ở dạng mờ

Key: Thành phần quan trọng trong việc mã hoá và giải mã

CryptoGraphic Algorithm: Là các thuật toán được sử dụng trong việc mã hoá hoặc giải mã thông tin

CryptoSystem: Hệ thống mã hoá bao gồm thuật toán mã hoá, khoá, Plaintext, Ciphertext

Kí hiệu chung: P là thông tin ban đầu, trước khi mã hoá. E() là thuật toán mã hoá. D() là thuật toán giải mã. C là thông tin mã hoá. K là khoá. Chúng ta biểu diễn quá trình mã hoá và giải mã như sau:

Quá trình mã hoá được mô tả bằng công thức: EK(P)=C Quá trình giải mã được mô tả bằng công thức: DK(C)=P

Hình 5 Mô hình mã hóa và giải mã

Bên cạnh việc làm thế nào để che dấu nội dung thông tin thì mã hoá phải đảm bảo các mục tiêu sau:

a. Tính bí mật : Đảm bảo dữ liệu được truyền đi một cách an toàn và không thể bị lộ thông tin nếu như có ai đó cố tình muốn có được nội dung của dữ liệu gốc ban đầu. Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu.

b. Tính xác thực: Giúp cho người nhận dữ liệu xác định được chắc chắn dữ liệu mà họ nhận là dữ liệu gốc ban đầu. Kẻ giả mạo không thể có khả năng để giả dạng một người khác hay nói cách khác không thể mạo danh để gửi dữ liệu. Người nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhận được.

c. Tính toàn vẹn: Giúp cho người nhận dữ liệu kiểm tra được rằng dữ liệu không bị thay đổi trong quá trình truyền đi. Kẻ giả mạo không thể có khả năng thay thế dữ liệu ban đầu băng dữ liệu giả mạo

d. Tính không thể chối bỏ : Người gửi hay người nhận không thể chối bỏ sau khi đã gửi hoặc nhận thông tin.

3.1.3 Độ an toàn của thuật toán

Nguyên tắc đầu tiên trong mã hoá là “Thuật toán nào cũng có thể bị phá vỡ”. Các thuật toán khác nhau cung cấp mức độ an toàn khác nhau, phụ thuộc vào độ phức tạp để phá vỡ chúng. Tại một thời điểm, độ an toàn của một thuật toán phụ thuộc:

- Nếu chi phí hay phí tổn cần thiết để phá vỡ một thuật toán lớn hơn giá trị của thông tin đã mã hóa thuật toán thì thuật toán đó tạm thời được coi là an toàn. - Nếu thời gian cần thiết dùng để phá vỡ một thuật toán là quá lâu thì thuật toán đó tạm thời được coi là an toàn.

- Nếu lượng dữ liệu cần thiết để phá vỡ một thuật toán quá lơn so với lượng dữ liệu đã được mã hoá thì thuật toán đó tạm thời được coi là an toàn

Từ tạm thời ở đây có nghĩa là độ an toàn của thuật toán đó chỉ đúng trong một thời điểm nhất định nào đó, luôn luôn có khả năng cho phép những người phá mã tìm ra cách để phá vỡ thuật toán. Điều này chỉ phụ thuộc vào thời gian, công sức, lòng đam mê cũng như tính kiên trì bên bỉ. Càng ngày tốc độ xử lý của CPU càng cao, tốc độ tính toán của máy tính ngày càng nhanh, cho nên không ai dám khẳng định chắc chắn một điều rằng thuật toán mà mình xây dựng sẽ an toàn mãi mãi. Trong lĩnh vực mạng máy tính và truyền thông luôn luôn tồn tại hai phe đối lập với nhau những người chuyên đi tấn công, khai thác lỗ hổng của hệ thống và những người chuyên phòng thủ, xây dựng các qui trình bảo vệ hệ thống. Cuộc chiến giữa hai bên chẳng khác gì một cuộc chơi trên bàn cờ, từng bước đi, nước bước sẽ quyết định số phận của mối bên. Trong cuộc chiến này, ai giỏi hơn sẽ dành được phần thắng. Trong thế giới mã hoá cũng vậy, tất cả phụ thuộc vào trình độ và thời gian…sẽ không ai có thể nói trước được điều gì. Đó là điểm thú vị của trò chơi.

3.1.4 Phân loại các thuật toán mã hoá

Có rất nhiều các thuật toán mã hoá khác nhau. Từ những thuật toán được công khai để mọi người cùng sử dụng và áp dụng như là một chuẩn chung cho việc mã hoá dữ liệu; đến những thuật toán mã hoá không được công bố. Có thể phân loại các thuật toán mã hoá như sau:

Phân loại theo các phương pháp:

Mã hoá cổ điển (Classical cryptography) Mã hoá đối xứng (Symetric cryptography) Mã hoá bất đối xứng(Asymetric cryptography) Phân loại theo khoá:

Mã hoá khoá bí mật (Private-key Cryptography) Mã hoá khoá công khai (Public-key Cryptography)

a. Mã hoá cổ điển

Xuất hiện trong lịch sử, các phương pháp này không dùng khoá. Thuật toán đơn giản và dễ hiểu. Những từ chính các phương pháp mã hoá này đã giúp chúng ta tiếp cận với các thuật toán mã hoá đối xứng được sử dụng ngày nay. Trong mã hoá cổ điển có 02 phương pháp nổi bật đó là:

- Mã hoá thay thế :

Là phương pháp mà từng kí tự (hay từng nhóm kí tự) trong bản rõ được thay thế bằng một kí tự (hay một nhóm kí tự) khác để tạo ra bản mờ. Bên nhận chỉ cần đảo ngược trình tự thay thế trên Ciphertext để có được Plaintext ban đầu.

Bên cạnh phương pháp mã hoá thay thế thì trong mã hoá cổ điển có một phương pháp khác nữa cũng nổi tiếng không kém, đó chính là mã hoá hoán vị. Nếu như trong phương pháp mã hoá thay thế, các kí tự trong Plaintext được thay thế hoàn toàn bằng các kí tự trong Ciphertext, thì trong phương pháp mã hoá hoán vị, các kí tự trong Plaintext vẫn được giữ nguyên, chúng chỉ được sắp xếp lại vị trí để

(adsbygoogle = window.adsbygoogle || []).push({});

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 29)