Việc cài đặt và tổ chức mô hình liên lạc được tiến hành tại Server để cung cấp các dịch vụ (file chạy server.exe), và cài đặt ứng dụng Chat tại các máy client theo mô hình Server-client (file chạy ClientDSS.exe).
Trước tiên cần khởi động cho Server hoạt động bằng cách chọn Start, sau đó các máy Client mới có thể đăng nhập vào hệ thống. Để thực nghiệm các tính năng của hệ thống, ta tiến hành đăng nhập với 3 tài khoản người dùng là A, B, C trên hệ thống máy chủ. Khi đó trên trên Server sẽ hiển thị toàn bộ các tài khoản đang hoạt động, đồng thời trên giao diện mỗi tài khoản cũng hiển thị danh bạ các tài khoản khác đang hoạt động cho phép người dùng lựa chọn để liên lạc.
Hình 3.5: Giao diện các máy Cliente A, B, C
3.3.1.1 Chức năng tạo và nạp khóa
Sau khi kết nối, các đầu mối trong hệ thống đều có thể gửi dữ liệu cho nhau giống như mạng Chat thông thường. Tuy nhiên dữ liệu nhận được là do chưa được ký nên hiển thị thông báo “Không hợp lệ”. Trường hợp nếu A muốn gửi thông báo có ký hợp lệ cho B, trước tiên A phải nạp khóa bí mật của mình và B phải nạp khóa công khai của A.
Tương tự, để A có thể nhận được dữ liệu hợp lệ của B thì B phải nạp khóa bí mật của mình và A sẽ nạp khóa công khai của B. Như vậy để A và B có thể trao đổi thông tin hợp lệ thì cả A và B cần được phải được nạp khóa theo giải thuật tạo khóa trình bày trong mục 3.1.1.
3.3.1.2 Chức năng ký và giải ký
Sau khi nạp khóa, A lựa chọn thông điệp cần gửi và thuật toán sẽ tiến hành ký tại A và giải ký tại B để hiện thị thông báo hợp lệ trên B theo thuật toán ký và giải ký đã trình bày tại phần trên. Trường hợp nếu thông tin bị thay đổi hoặc sửa chữa tức không đảm bảo tính toàn vẹn của dữ liệu, thì hệ thống cũng sẽ hiển thị thông báo không hợp lệ sau khi tiến hành giải ký và so sánh hàm băm.
Hình 3.7: Trao đổi thông tin Chat trên ứng dụng chữ ký số 3.3.2 Giải pháp kết hợp kỹ thuật giấu tin trong ảnh và chữ ký số
Giả sử trường hợp xấu nhất, trong phiên liên lạc Chat giữa A và B, kẻ lạ mặt đột nhập và chiếm toàn bộ quyền sử dụng của A, tức có toàn bộ các
tham số mật mã để A và B có thể trao đổi hợp lệ qua lược đồ ký như trên. Khi kẻ mạo danh gửi dữ liệu cho B, theo lược đồ ký phổ biến hiện nay thì B sẽ không thể phát hiện ra được đó là dữ liệu giả mạo. Vì thế trong trường hợp này, tác giả đề xuất sử dụng thêm một ứng dụng để phát hiện điều đó, nhưng không dùng phương pháp phổ biến là so sánh giá trị băm của tóm lược mà áp dụng kỹ thuật ẩn giấu thông tin để kiểm tra tính toàn vẹn, bởi hiện nay tác giả đã có một số kết quả nghiên cứu về kỹ thuật ẩn giấu thông tin trong ảnh.
Một bức ảnh trước khi ký thì sẽ được giấu một thông tin bí mật trong đó, vì thế nếu bức ảnh ký nếu có bị sửa chữa hay can thiệp thì sẽ không thể giải mã ra được thông điệp giấu. Dựa vào điểm này ta có thể kiểm tra tính toàn vẹn của dữ liệu một cách hiệu quả và đơn giản.
3.3.2.1 Giao diện chính
Để thuận tiện, tác giả tiến hành xây dựng và tích hợp giải pháp này trên cùng giải pháp Chat.
3.3.2.2 Chức năng tạo khóa
Việc tạo khóa được thực hiện như đã trình bày trên. Để có thể ký và giải ký, người gửi cần nạp khóa bí mật của mình, đồng thời bên nhận phải nạp khóa công khai của người gửi. Khóa cũng được sinh ra theo thuật toán ký số như đã trình bày. Mặt khác theo thuật toán giấu tin, chúng ta cũng cần nạp khóa bí mật. Trong chương trình ứng dụng, để đơn giản, luận văn lựa chọn phương pháp tạo khóa bằng cách chọn các ký tự đoạn đầu văn bản nhập vào để làm mầm khóa cho thuật toán giấu tin.
3.3.2.3 Chức năng tạo chữ ký
Quá trình giấu tin trong ảnh được tác giả tổ chức cùng với chức năng tạo chữ ký số trên ảnh có giấu tin. Trước tiên cần nạp khóa bí mật của người gửi trong lược đồ ký. Sau đó lựa chọn ảnh đầu vào và thông tin nội dung chữ ký. Chương trình sẽ chạy thuật toán giấu tin F5 và ký số.
Hình 3.9: Chức năng tạo chữ ký số trên file ảnh có giấu tin
Sau khi chọn ký file ta sẽ có chữ ký trên file ảnh jpg có chứa tin bên trong và sẽ được gửi cho người nhận.
3.3.2.4 Chức năng kiểm tra chữ ký
Người nhận khi nhận được file ký thì sẽ giải ký bằng khóa công khai của người gửi. Đồng thời chương trình sẽ tính toán kiểm tra tính toàn vẹn của thông điệp bằng cách so sánh mã hàm băm. Nếu chúng giống nhau thì kết luận hợp lệ, có nghĩa đảm bảo tính toàn vẹn.
Hình 3.10: Kiểm tra chữ ký số hợp lệ
Trường hợp ngược lại, nếu chúng khác nhau thì hiển thị không hợp lệ.