intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Báo cáo bài thực hành môn An toàn mạng máy tính – Lab 3: RSA Public-Key Encryption

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:15

6
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Báo cáo bài thực hành môn An toàn mạng máy tính – Lab 3: RSA Public-Key Encryption giúp sinh viên hiểu cách hoạt động của hệ mã hóa khóa công khai RSA và thực hiện các bài toán liên quan đến sinh, quản lý và sử dụng khóa. Bài thực hành củng cố lý thuyết RSA bằng trải nghiệm thực tế. Mời các bạn cùng tham khảo bài giảng để biết thêm chi tiết!

Chủ đề:
Lưu

Nội dung Text: Báo cáo bài thực hành môn An toàn mạng máy tính – Lab 3: RSA Public-Key Encryption

  1. Lab 3 Khoa Mạng máy tính & Truyền thông - UIT BÁO CÁO BÀI THỰC HÀNH SỐ 3 Public-key Cryptography - RSA Môn học: An toàn mạng máy tính Lớp: NT101.O11.MMCL Giảng viên hướng dẫn Nguyễn Xuân Hà Lê Huỳnh Quang Vũ (21522797) Sinh viên thực hiện Nguyễn Trọng Phúc (21522476) Trần Nguyễn Quốc Bảo (21521865) Mức độ hoàn thành Hoàn thành Thời gian thực hiện 23/10/2023 – 30/10/2023 Tự chấm điểm 10/10
  2. Lab 3: RSA Public-Key Encryption A. CÁC BƯỚC THỰC HÀNH B. TRẢ LỜI CÁC CÂU HỎI 1. Number Theory  Task 1.1 Write a program (with your own programming language) to fulfil the following requirements: 1. Prime number: • Generate a random prime number with 8 bits, 16 bits, 64 bits • Determine the 10 largest prime numbers under 10 first Mersenne prime numbers. • Check if an arbitrary integer less than 289 -1 is prime or not 2. Determine the greatest common divisor (gcd) of 2 arbitrary “large” integers (which are as large as possible that you can handle) 3. Compute the modular exponentiation ax mod p. Your program should be able to compute in case of “large” exponents (x>40), for example, 740 mod 19 Task 1.1.1: Cách giải: 1. Hàm generateRandomPrime: − Hàm này tạo một số nguyên tố ngẫu nhiên có n bit bằng cách sử dụng một phân phối đều với giới hạn từ (1ULL
  3. Lab 3: RSA Public-Key Encryption − Cho phép người dùng nhập một số nguyên tùy ý và kiểm tra xem số đó có phải là số nguyên tố không bằng cách gọi hàm isPrime với số được nhập. Output: Code: 3
  4. Lab 3: RSA Public-Key Encryption Task 1.1.2: Cách giải: Chương trình C++ trên tính toán ước chung lớn nhất (GCD) của hai số nguyên lớn bằng cách sử dụng thuật toán Euclidean. Đoạn mã thực hiện các bước sau: − Người dùng nhập hai số nguyên lớn dưới dạng chuỗi. 4
  5. Lab 3: RSA Public-Key Encryption − Chuỗi đầu vào được chuyển thành số nguyên dạng long long. − Hàm gcd(a, b) được sử dụng để tính GCD của hai số nguyên. − Kết quả GCD được in ra màn hình. Output: Code: 5
  6. Lab 3: RSA Public-Key Encryption Task 1.1.3: Cách giải: 1. Bắt đầu bằng việc nhập giá trị của a (cơ sở), x (số mũ), và p (modulo) từ người dùng. 2. Hàm modularExponentiation được gọi để tính (a^x) % p và kết quả được lưu trong biến result. 3. Trong hàm modularExponentiation: 4. a được giảm xuống còn a % p để đảm bảo rằng a không lớn hơn p. 5. Một vòng lặp while được sử dụng để tính a^x mod p: 6. Nếu x lẻ (x % 2 == 1), thì a được nhân với kết quả và sau đó được lấy modulo p. 7. Sau đó, x được chia cho 2 và a được cập nhật thành a^2 mod p. 8. Quá trình lặp này tiếp tục cho đến khi x = 0. 9. Kết quả (a^x) % p được in ra màn hình. 10. Đoạn mã này cho phép tính toán lũy thừa modulaire hiệu quả để tránh tràn số và được sử dụng trong nhiều ứng dụng trong toán học và khoa học máy tính. Output: Code: 6
  7. Lab 3: RSA Public-Key Encryption 2. RSA Public-Key Encryption  Task 2.1 To get acquainted with RSA, your task is using CrypTool 2 or other tools to perform the following experiments: 1. Determine public key PU and private key PR, if: 7
  8. Lab 3: RSA Public-Key Encryption • p1 =11,q1 =17,e1 =7 (decimal) • p2 = 20079993872842322116151219 • q2 = 676717145751736242170789, e2 = 17 (decimal) • p3 = F7E75FDC469067FFDC4E847C51F452DF • q3 = E85CED54AF57E53E092113E62F436F4F, e3 = 0D88C3 (hexadecimal) (Note: Remember to check if the above values are prime numbers or not before calculating the keys) 2. Using key which generated by p1,q1,e1 to encrypt and decryptthe plaintext M=5 in both cases Encryption for Confidentiality and Encryption for Authentication. 3. Use the keys above to encrypt the following message: The University of Information Technology Determine the ciphertext as Base64. 4. Find the correspondingplain text of eachfollowing ciphertext, knowing thatthey are encrypted by one of the three given keys above. • raUcesUlOkx/8ZhgodMoo0Uu18sC20yXlQFevSu7W/FDxIy0YRHMyXcH dD9PBvIT2aUft5fCQEGomiVVPv4I • C8 7F 57 0F C4 F6 99 CE C2 40 20 C6 F5 42 21 AB AB 2C E0 C3 • Z2BUSkJcg0w4XEpgm0JcMExEQmBlVH6dYEpNTHpMHptMQ7NgTHlg QrNMQ2BKTQ== • 00101000 00010100 11111111 10110111 00101110 11001010 11101100 01100111 10111111 00111111 01101000 11001111 00110000 10010100 01010100 11110101 01001100 11101110 11101111 01011011 00000100 Task 2.1.1: Public key và private key: • 1: PU=187, PR=23. • 2: 8
  9. Lab 3: RSA Public-Key Encryption • 3: 9
  10. Lab 3: RSA Public-Key Encryption Task 2.1.2: • Encryption for Confidentiality = 146. • Encryption for Authentication = 180. Task 2.1.3: 10
  11. Lab 3: RSA Public-Key Encryption Task 2.1.4: 11
  12. Lab 3: RSA Public-Key Encryption Task 2.2  Task 2.2 Your task is to write a program to illustrate how simple RSA cipher works, meet the following requirements: Generating keypair (PU, PR) using the given “valid” inputs p, q, e or generate a randomized keypair if p, q, e are not given. Note that the keypair is as “large” as possible Use the generated keys to encrypt/decrypt the message. The message can be numeric or string. Check the results of your application with some examples input as in Task 2.1. 12
  13. Lab 3: RSA Public-Key Encryption 13
  14. Lab 3: RSA Public-Key Encryption => Theo cầu đề bài thì: đoạn code trên được code bằng C++, có 2 lựa chọn: - 0-Mã hóa: nếu chọn giải mã thì người dùng có thể nhập số nguyên tố bất kì, chương trình có chức năng kiểm tra số nguyên tố nên nếu người dùng nhập sai thì sẽ đc yêu cầu nhập lại, nếu bấm “enter: thì các cặp số p, q, và e sẽ được tạo ngẫu nhiên, và yêu cầu nhập đoạn message. 14
  15. Lab 3: RSA Public-Key Encryption - 1-Giải mã: nếu chọn trường hợp này thì cũng giống trường hợp trên nhưng các thông số sẽ là n và d, và đoạn message đã được mã hóa 15
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
9=>0