Phần mềm minh họa

Một phần của tài liệu (LUẬN văn THẠC sĩ) một số vấn đề về bảo mật thư điện tử (Trang 67)

Phần mềm sử dụng ảnh Bitmap 24 bit màu, chia thành các khối 16x16.

4.3.1. Quy trình gửi thư

Bước1:Chọnthư T cần gửi.

Bước2: Mã hóa thưT bằng phương pháp Rabincải tiến để nhận được T′ Bước 3: Chọn ảnh gốc I

- Chia ảnh gốc I thành hai phần I và I

- Nhúng T′ vào I theo thuật toán THA để nhận được I

- Sử dụng hàm băm SHA1-256bit đối với I với khóaS để nhận được mã băm H

- Chèn mã băm H vào bít thấp của I để nhận được I - Ghép I và I để nhận được ảnh chứa đề thi I Bước 4: Gửi ảnh I qua Internet

4.3.2. Quy trình nhận thư

Trong quá trình trao đổi, ảnh chứa thưI có thể bị tấn cơng thành I∗. Hệ thống sẽ xác thực xem ảnh I∗ có trùng với ảnh I hay không. Trong trường hợp trùng, hệ thống sẽ trích thư từ ảnh I∗.

Bước1: Chia ảnh I∗ thành hai phần I∗ và I∗

Bước 2: Xác thực

- Trích các bít thấp của I∗ để nhận được H∗

- Sử dụng hàm băm SHA1 - 256 bít đối với I∗ và khóa S để nhận được mã băm H∗

- Đối sánh H∗với H∗, nếu bằng nhau thì ảnh I∗ trùng với ảnh I Bước 3: Khơi phục thư

- Áp dụng thuật tốn trích tin THA để khôi phục T từ I∗

- Sử dụng Rabin-THA giải mã T để nhận được thưT

4.3.3. Giao diện

a) Giao diện gửi thư

 Tạo khóa: tạo ra cặp khóa bí mật P, Q để mã hóa thư và khóa cơng khai N dùng để giải mã.

 Mã hóa thư: Chọn thư cầ

 Giấu tin trong ảnh: giấu t

ần gửi và mã hóa

b) Giao diện nhận thư

 Xác thực xem ảnh nhậ

 Khôi phục thư nếu như GIẤU TỆP

ận được có bị thay đổi không.

u như ảnh không bị thay đổi

c) Chương trình namespace THA_DataHiding { structBitmapHeader { publicstring typeFile; publicuint FileSize;

// public uint Reserved

publicuint AddressofImageData; dữ liệu publicvoid GetInfo(byte } structBitmapInfo { publicuint Numberofbytes;

Image Info, giá trị thông thường

publicuint WidthofImage;

pixel

publicuint HeightofImage;

pixel

THA_DataHiding

typeFile; // 2 byte, chứa 2 ký tự nhận dạng FileSize; // 4 byte, kích thước của file;

public uint Reserved; // 4 byte dự trữ

AddressofImageData; // 4 byte lưu trữ địa chỉ của vùng

byte[] buffer);

Numberofbytes; // 4 bytes, lưu trữ kích thước của vùng

giá trị thơng thường 40

WidthofImage; // 4 bytes, độ rộng của ảnh tính theo

HeightofImage;// 4 bytes, chiều cao của ảnh tính theo

ký tự nhận dạng "BM"

yte lưu trữ địa chỉ của vùng

lưu trữ kích thước của vùng

ộ rộng của ảnh tính theo

publicushort NumberofColorPlans; // 2 byte, số lượng bảng mầu, giá

trị mặc định là 1

publicushort NumberofBitforaPixel; // 2 byte, số bits biểu diễn một điểm ảnh

publicuint TypeofCompress; // 4 byte, kiểu nén

publicuint ImageSize; //4 byte, kích thước của ảnh tính theo byte publicuint ResolutionX; // 4 byte, Độ phân giải của ảnh theo chiều

ngang

publicuint ResolutionY; // 4 byte, Độ phân giải của ảnh theo chiều

dọc

publicuint NumberofColors; // 4 byte, số lượng màu trong bảng màu publicuint NumberofImportColors; // 4 byte, số lượng màu quan trọng của ảnh

publicvoid GetInfo(byte[] buffer);

}

abstractclassBase

{

protectedstring PlaintextFile; // Lưu trữ file bản rõ

protectedstring CiphertextFile; // Lưu trữ file bản mã protected BigInteger N;

protected BigInteger P; protected BigInteger Q;

protectedint blockSize; // Kích thước khối sẽ là số byte của N

//Để đảm bảo y = x ^2 mod N thì x<N do đó số byte của x < blockSize

public Base(BigInteger P, BigInteger Q, string ciphertextFile)

public Base(BigInteger N, string plaintextFile, string

ciphertextFile) }

staticclassBaseCryptography

{

publicstatic BigInteger GiaiPhuongTrinhDongDu(BigInteger a,

publicstaticvoid Euclid_Extention(BigInteger a, BigInteger b, out

BigInteger k1, out BigInteger k2)

publicstatic BigInteger GiaiHePhuongTrinhDongDu(BigInteger N,

BigInteger p, BigInteger k1, BigInteger a, BigInteger b)

publicstaticint Jacobi(BigInteger a, BigInteger n publicstaticint Legendre(BigInteger a, BigInteger p) publicstatic BigInteger SoNghichDao(BigInteger N, int d)

}

classMaHoa_THA : Base

{

public MaHoa_THA(BigInteger N, string plaintextFile, string

ciphertextFile)

: base(N, plaintextFile, ciphertextFile)

privatebyte[] BlockEncryption(byte[] sourceBlock, int size) publicvoid FileEncryption()

}

classGiaiMa_THA : Base

{

private BigInteger mup; private BigInteger muq; private BigInteger k1; private BigInteger k2;

public GiaiMa_THA(BigInteger P, BigInteger Q, string

ciphertextFile, string plaintextFile) : base(P, Q, ciphertextFile)

privatebyte[] BlockDecryption(byte[] sourceBlock, int size)

publicvoid FileDecryption()

staticclassInfo

{

publicstaticbyte[,] ReadWMatrix(string filename) publicstaticint XSUM(byte[,] F, byte[,] W)

} classNhungTin { string Anh_Goc; string Anh_ChuaTin; string DataFile;

public NhungTin(string goc, string chuatin, string datafile) publicvoid Nhung() } classTachTin { string Anh_ChuaTin; string DataFile;

public TachTin(string anh, string data) publicvoid Tach()

}

KẾT LUẬN 1. Kết luận

Luận văn đã nghiên cứu được: một số phương pháp mã hóa cải tiến trên Rabin như Shimada, Chen-Tsu, THA – phương pháp mới được công bố năm 2012 của nhóm tác giả người Việt Nam; một số kỹ thuật giấu tin trên ảnh nhị phân như CPT, CTL, THA – kỹ thuật mới được công bố năm 2012 và đang được đánh giá tương đối tốt; thủy vân dễ vỡ: phân tích, đánh giá, so sánh các phương pháp mã hóa, các kỹ thuật giấu tin, giúp cho người dùng có cáinhìn tổng qt và đầy đủ khi nghiên cứu và triển khai các hệ thống mã hóa, giấu tin mới. Đồng thời đưa ra đề xuất phương án áp dụng giấu tin THA trên ảnh màu.

Luận vănđề xuất một mơ hình kết hợp cả ba cơng cụ mã hóa, giấu tin và thủy vân dễ vỡ để giải quyết bài tốn thư điện tử nhằm tăng độ an tồn cho các tệp dữ liệu đính kèm trên đường truyền trong quá trình giao dịch thư điện tử.

2. Hướng phát triển

Tích hợp và xây dựng chương trình soạn thảo, duyệt và nhận thư ở phía Client như Outlook Express.

TÀI LIỆU THAM KHẢO Tiếng việt

[1] Phan Đình Diệu (2006), Lý thuyết mật mã và An tồn thơng tin, NXB

ĐHQG HN.

[2] Hà Huy Khoái, Phạm Huy Điển (2003), Số học thuật tốn: Cơ sở lý

thuyết và tính tốn thực hành, NXB ĐHQG HN.

[3] Hà Huy Khoái, Phạm Huy Điển (2004), Mã hỗ thơng tin: Cơ sở toán

học và ứng dụng, NXB ĐHQG HN.

[4] Đỗ Văn Tuấn, Trần Đăng Hiên, Phạm Văn Ất, Một sơ đồ cải tiến hệ mật

mã khóa cơng khai Rabin, Kỷ yếu hội thảo quốc gia lần thứ XIV, Một số

vấn đề chọn lọc Công nghệ thông tin và Truyền thông, Cần Thơ - 2011, tr 280-289.

[5] Phạm Văn Ất, Nguyễn Hữu Cường, Đỗ Văn Tuấn, Giấu tin trong ảnh nhị

phân và ứng dụng, Tạp chí Khoa học Giao thơng vận tải, số 19 tháng 9 năm

2007

[6] Vũ Bá Đình, Nguyễn Xuân Huy, Đào Thanh Tĩnh (2002), Đánh giá khả

năng giấu dữ liệu trong bản đồ số, tạp chí Tin học và Điều khiển học, số 4,

347-353

[7] Nguyễn Xuân Huy, Bùi Thị Thuý Hằng (2001), Một số cải tiến của kĩ thuật

giấu dữ liệu trong ảnh

Tiếng Anh

[8] William Stallings - Cryptography and Network Security Principles

andPractices, Fourth Edition

[9] Chin-Chen Chang and Sun-Min Tsu (2000) - An improvement on

Shimada’s public-key cryptosystem, Journal of Science and Engineering,

vol. 3, no. 2, pp. 75-79.

[10] Harn, and Kiesler (1989) - Improved Rabin’s scheme with high

efficiency, Electron. Lett., 25, (1 l), pp. 726-728

[11] Rabin, M. O (1980) - Probabilistic algorithm for testing primality, J.

Number theory, 12(1): 128 – 183.

Emirates University College of IT.

[13] Shimada, M (1992) - Another Practical Public-Key Cryptosystem,

Một phần của tài liệu (LUẬN văn THẠC sĩ) một số vấn đề về bảo mật thư điện tử (Trang 67)

Tải bản đầy đủ (PDF)

(76 trang)