1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu về mã hóa bất Đối xứng

13 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Về Mã Hóa Bất Đối Xứng
Tác giả Nguyễn Tiến Phúc, Đỗ Trọng Phú, Phan Nguyên, Phạm Hoàng Nam, Ngô Hùng Phương, Phạm Ngọc Nghĩa
Trường học Trường Đại Học
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 13
Dung lượng 1,73 MB

Nội dung

Hệ mật mã khóa bất đối xứng mình thấy được dùng nhiều nhất là RSA Hệ mật sẽ bao gồm:  Bản rõ plaintext-M: bản tin được sinh ra bởi bên gửi  Bản mật ciphertext-C: bản tin che giấu thông

Trang 1

NHÓM 12: Nguyễn Tiến Phúc

Đỗ Trọng Phú Phan Nguyên Phạm Hoàng Nam Ngô Hùng Phương Phạm Ngọc Nghĩa

I Tìm hiểu về mã hóa bất đối xứng.

Ở hệ mật này thay vì nguời dùng dùng chung 1 khóa như ở hệ mật mã khóa đối xứng thì ở đây sẽ dùng 1 cặp khóa có tên là public key và private key

Hệ mật mã khóa bất đối xứng mình thấy được dùng nhiều nhất là RSA

Hệ mật sẽ bao gồm:

 Bản rõ (plaintext-M): bản tin được sinh ra bởi bên gửi

 Bản mật (ciphertext-C): bản tin che giấu thông tin của bản rõ, được gửi tới bên nhận qua một kênh không bí mật

 Khóa: Bên nhận có 1 cặp khóa:

o Khóa công khai (Kub) : công bố cho tất cả mọi người biết (kể cả hacker)

Trang 2

o Khóa riêng (Krb) : bên nhận giữ bí mật, không chia sẻ cho bất kỳ ai

 Mã hóa (encrypt-E): C = E(Kub, M)

 Giải mã (decrypt): M = D(Krb, C) = D(Krb, E(Kub, M))

Yêu cầu đối với cặp khóa (Kub, Krb) là:

 Hoàn toàn ngẫu nhiên

 Có quan hệ về mặt toán học 1-1

 Nếu chỉ có giá trị của Kub không thể tính được Krb

 Krb phải được giữ mật hoàn toàn

Cơ chế hoạt động

Người gửi(A) gửi thông tin đã được mã hóa bằng khóa công khai (Kub) của người nhận(B) thông qua kênh truyền tin không bí mật

 Người nhận(B) nhận được thông tin đó sẽ giải mã bằng khóa riêng (Krb) của mình

 Hacker cũng sẽ biết khóa công khai (Kub) của B tuy nhiên do không có khóa riêng (Krb) nên Hacker không thể xem được thông tin gửi

Ưu điểm của hệ mật này đó là

 Không cần chia sẻ khóa mã hóa(khóa công khai) một cách bí mật => Dễ dàng ứng dụng trong các hệ thống mở

 Khóa giải mã(khóa riêng) chỉ có B biết => An toàn hơn, có thể xác thực nguồn gốc thông tin

 n phần tử chỉ cần n cặp khóa

Nhược điểm:

 Chưa có kênh an toàn để chia sẻ khóa => Khả năng bị tấn công dạng tấn công người đứng giữa(man in the middle attack )

Tấn công người đứng giữa: kẻ tấn công lợi dụng việc phân phối khóa công khai

để thay đổi khóa công khai Sau khi đã giả mạo được khóa công khai, kẻ tấn công đứng ở giữa 2 bên để nhận các gói tin, giải mã rồi lại mã hóa với khóa đúng và gửi đến nơi nhận để tránh bị phát hiện

Trang 3

Dạng tấn công kiểu này có thể phòng ngừa bằng các phương pháp Trao đổi khóa Diffie-Hellman nhằm đảm bảo nhận thực người gửi và toàn vẹn thông tin

II Tìm hiểu về thư viện mã hóa với ngôn ngữ C#.

1 Mã hóa một chiều và mã hóa hai chiều

1.1.

Mã hóa 1 chiều

Ưu điểm

Mã hóa 1 chiều được sử dụng rộng rãi để mã hóa mật khẩu, đảm bảo tính bảo mật cao của dữ liệu Với mã hóa 1 chiều, dữ liệu được mã hóa trở thành một chuỗi dữ liệu đầu ra bất khả giải mã, không thể giải mã trở lại thành dữ liệu gốc Mã hóa 1 chiều cũng đảm bảo tính duy nhất của dữ liệu, đảm bảo rằng cùng một dữ liệu đầu vào luôn cho ra cùng một kết quả đầu ra

Nhược điểm

Mã hóa 1 chiều không cho phép giải mã dữ liệu trở lại thành dữ liệu gốc, điều này đôi khi là không tiện lợi cho người dùng Nếu bạn muốn sử dụng dữ liệu đã được

mã hóa để thực hiện các tính năng phức tạp, bạn sẽ cần giải mã dữ liệu đó bằng một phương pháp khác

Trang 4

Mã hóa 2 chiều

Ưu điểm

Mã hóa 2 chiều cho phép giải mã dữ liệu ngược lại thành dữ liệu gốc, giúp cho người dùng dễ dàng sử dụng dữ liệu mà không phải giải mã bằng tay Ngoài ra, mã hóa 2 chiều cũng cho phép người dùng thực hiện các tính năng phức tạp như mã hóa dữ liệu với mật khẩu

Nhược điểm

Mã hóa 2 chiều không an toàn cho việc mã hóa mật khẩu và thông tin nhạy cảm

Vì dữ liệu có thể được giải mã trở lại, bất kỳ ai có quyền truy cập vào mã hóa dữ liệu đó đều có thể truy cập được dữ liệu gốc Hơn nữa, các thuật toán mã hóa 2 chiều không phải là an toàn tuyệt đối, vì vậy dữ liệu của bạn có thể bị tấn công bởi các hacker chuyên nghiệp

2 Mã hóa mật khẩu một chiều Bcrypt trong C#

Trang 5

BCrypt là một thư viện mã hóa dùng để mã hóa mật khẩu hoặc các thông tin nhạy

cảm khác trong ứng dụng BCrypt được sử dụng phổ biến trong nhiều ngôn ngữ lập trình, trong đó bao gồm cả C#

BCrypt cung cấp phương thức mã hóa 1 chiều (one-way hashing), có nghĩa là mật khẩu hoặc thông tin nhập vào sẽ được mã hóa thành chuỗi ký tự không thể giải mã ngược trở lại Tức là, người dùng không thể phục hồi mật khẩu ban đầu từ chuỗi

mã hóa được lưu trữ trong cơ sở dữ liệu

Một trong những ưu điểm lớn của BCrypt là khả năng đối phó với các cuộc tấn công từ điển (dictionary attacks) hoặc tấn công brute-force (thử tất cả các mật khẩu

có thể) Điều này được đảm bảo bởi tính chất của thuật toán mã hóa BCrypt, với việc sử dụng hàm salt (muối) và việc thêm vào một độ khó tính toán

(computational complexity) vào quá trình mã hóa

Hàm salt được sử dụng để thêm dữ liệu ngẫu nhiên vào chuỗi đầu vào trước khi mã hóa Điều này giúp tăng tính bảo mật bằng cách đảm bảo rằng mỗi mật khẩu có thể

mã hóa thành chuỗi khác nhau Do đó, các tấn công từ điển sẽ không hiệu quả vì các chuỗi mã hóa của các mật khẩu khác nhau sẽ không giống nhau

Ngoài ra, BCrypt còn sử dụng một giá trị “cost factor” để tăng độ phức tạp tính toán trong quá trình mã hóa Điều này đảm bảo rằng các tấn công brute-force sẽ trở nên rất khó khăn vì nó sẽ yêu cầu nhiều thời gian tính toán để thử hết các mật khẩu

có thể

III Tìm hiểu về lập trình Android Application với Xamarin.

1.Các bước chuẩn bị:

Phần mềm Microsoft Visual Studio 2012 Professional hoặc cao hơn

Phần mềm Xamarin

2.Các b ư ớc cài đặt

Trang 6

1 Cài đặt Microsoft Visual Studio

2 Cài đặt Xamarin

Chạy tập tin XamarinInstaller.exe để tiến hành cài đặt Xamarin; khi màn hình xuất hiện -> chọn Continue

Trang 7

Sau khi trình cài đặt phát hiện những thành phần cần thiết -> chọn Next

Lựa chọn thư mục chứa Android SDK hoặc để mặc định -> chọn Next

Trang 8

Tại màn hình kế tiếp -> chọn Next -> chờ trình cài đặt tải và cài đặt các thành phần mềm cần thiết

Trang 9

Sau khi cài đặt hoàn thành -> chọn Close

Trang 10

3 Tạo một ứng dụng đơn giản

Sau khi chúng ta đã cài đặt tất cả các phần mềm cần thiết (Microsoft Visual Studio, Xamarin for Visual Studio), chúng ta khởi động Microsoft Visual Studio và tạo một solution, cụ thể như sau:

Tại màn hình Start Page -> chọn New Project

Trang 11

Chọn Android -> chọn Blank App (Android); nhập tên; lựa chọn nơi chứa ->

chọn OK

Một project được tạo như hình bên dưới

Trang 12

Build và run ứng dụng

Ứng dụng được hiển thị trên thiết bị giả lập (Android Emulator)

Ngày đăng: 13/01/2025, 13:59