Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
1 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA VIỄN THÔNG - - BÀI TIỂU LUẬN KẾT THÚC MÔN HỌC Đề tài : “ Tạo số giả ngẫu nhiên mật mã dòng ” Bài thi cuối kỳ mơn ANM MỤC LỤC : PHÂN CƠNG NHIỆM VỤ……………………………………………………………… THUẬT NGỮ VIẾT TẮT………………………………………………………………….3 DANH SÁCH CÁC HÌNH , CÁC BẢNG…………………………………………………4 LỜI MỞ ĐẦU:……………………………………………………………………… MỤC ĐÍCH VÀ PHẠM VI CỦA TIỂU LUẬN ………………………………………… TẠO SỐ GIẢ NGẪU NHIÊN …………………………………………………………7 1.1 NGUYÊN TẮC TẠO SỐ GIẢ NGẪU NHIÊN……………………………………7 1.1.1 Số giả ngẫu nhiên…………………………………………………………7 1.1.2 TRNG, PRNG PRF……………………………………………………8 1.1.3 Yêu cầu PRNG……………………………………………………… 1.1.4 Yêu cầu seed……………………………………………………… 10 1.1.5 Thiết kế thuật toán……………………………………………………….12 1.2 BỘ TẠO SỐ GIẢ NGẪU NHIÊN……………………………………………… 13 1.2.1 Các tạo đồng dạng tuyến tính…………………………………………13 1.2.2 Bộ tạo BBS ( Blum Blum Shub) ……………………………………… 14 MẬT MÃ DÒNG ………………………………………………………………… …16 RC4………………………………………………………………………………… 17 SO SÁNH PRNG VÀ TRNG VÀ ỨNG DỤNG CỦA SỐ GIẢ NGẪU NHIÊN…… 20 4.1 So sánh PRNG TRNG …………………………………………………… …20 4.2 Ứng dụng số giả ngẫu nhiên………………………………………………….21 KẾT LUẬN ……………………………………………………………………… …22 TÀI LIỆU THAM KHẢO ……………………………………………………………… 23 Bài thi cuối kỳ mơn ANM PHÂN CƠNG NHIỆM VỤ CỦA NHĨM Họ tên Mã sinh viên Nhiệm vụ Nguyên tắc tạo số giả ngẫu nhiên So sánh PRNG TRNG ứng dụng số ngẫu nhiên Tổng hợp hoàn thiện file Bộ tạo số giả ngẫu nhiên Kết luận Mật mã dịng RC4 Bài thi cuối kỳ mơn ANM THUẬT NGỮ VIẾT TẮT TRNG True Random Number Generator Bộ tạo số ngẫu nhiên thực PRNG Pseudo-Random Number Generators Bộ tạo số giả ngẫu nhiên PRF RSA LCG ID Pseudorandom Function Hàm giả ngẫu nhiên Được phát triển Ron Rivest, Adi Là hệ mã hóa bất đối xứng Shamir Leonard Adleman (tên tên viết tắt tác giả này) Linear Congruential Generators Bộ tạo đồng dạng tuyến tính Identification Nhận dạng, nhận biết BBS Blum Blum Shub Bộ tạo BBS CSPRNG Secure Pseudorandom Number Generators Bộ tạo bit giả ngẫu nhiên an toàn bảo mật WPA Wifi Protected Access Là giao thức an ninh mạng không dây WEP Wired Equivalent Privacy Là thuật toán bảo mật WiFi OTP One Time Pad RC4 Rivest Cipher Hệ thống mật mã hóa sử dụng lần Thuật tốn mã hóa mật mã Bài thi cuối kỳ mơn ANM DANH SÁCH CÁC HÌNH , CÁC BẢNG Hình 1.1 Ngun lý tạo số ngẫu nhiên giả ngẫu nhiên Hình 1.2 Sự phát sinh đầu vào Seed đến PRNG Hình 1.3 Sơ đồ khối tạo số BBS Hình 2.1 Sơ đồ mật mã dịng Hình 3.1: RC4 Bảng Ví dụ hoạt động BBS Bảng So sánh PRNG TRNG Bài thi cuối kỳ môn ANM LỜI MỞ ĐẦU Các số ngẫu nhiên sử dung từ hàng nghìn năm trước Dù tung đồng xu hay tung xúc xắc chúng đưa tới kết giá trị ngẫu nhiên Những tạo số ngầu nhiên cung tương tự người thiết lập cố gắng để tạo giá trị đạt tới ngưỡng khơng thể dự đốn kết ngẫu nhiên Việc tạo số ngẫu nhiên sử dụng cho nhiều mục đích khác Bên cạnh ứng dụng tạo số ngầu nhiên cho việc quay số hay đơn giản tạo kết ngẫu nhiên cho trò chơi điện tử, ngẫu nhiên quan trọng cho ngành mật mã học Mật mã học vấn đề quan trọng lĩnh vực bảo mật an tồn thơng tin Mật mã học đòi hỏi số mà người cơng hay gọi hackers khơng thể dự đốn Vì mà khơng thể sử dụng số giống lặp lặp lại Chúng ta muốn tạo số theo cách khơng thể dự đốn kẻ tần cơng khơng thể đốn chúng Những số ngẫu nhiên cần cho ngành mật mã học, cho dù bạn mã hóa tệp bạn hay sử dụng website HTTPS Internet Hơn nữa, tạo dãy số thực ngẫu nhiên thực chất lại khó đặc biệt máy tính Một lý máy tính xác định (deterministic) tức chúng hoạt động cho kết theo hướng nhất, dự đốn được.Điều nghĩa gần khơng thể viết chương trình tạo số cách hoàn toàn ngẫu nhiên Để khắc phục điều tạo số ngẫu nhiên thường sử dụng hai phương thức : Lấy số liệu từ yếu tố môi trường thời gian tại, vị trí chuột, tạp nhiễu nhiệt (thermal noise), số tượng lượng tử khác kết tính tốn thí nghiệm Do tính ngẫu nhiên số liệu nên dãy số tạo ngẫu nhiên Dùng thuật toán để tạo số giả ngẫu nhiên (pseudorandom) Các số tạo phương pháp khơng ngẫu nhiên có nhiều tính chất giống gần giống số ngẫu nhiên Trong chúng em nói số giả ngẫu nhiên, tính chất số thuật tốn thơng dụng dùng để tạo số Bài thi cuối kỳ mơn ANM MỤC ĐÍCH VÀ PHẠM VI CỦA TIỂU LUẬN Sau nghiên cứu chương này,chúng em hiểu : Giải thích khái niệm số ngẫu nhiên nguyên tắc tạo số giả ngẫu nhiên Trình bày tổng quan yêu cầu tạo số giả ngẫu nhiên + Tổng quan mật mã dòng RC4 + So sánh tạo số ngẫu nhiên thực (TRNG) tạo số giả ngẫu nhiên (PRNG) + Tìm hiểu ứng dụng số giả ngẫu nhiên mơ , game , mã hóa ứng dụng khác Phạm vi tiểu luận : tập chung vào kiến thức sở an ninh mạng viễn thông dựa kiến thức nguyên tắc tạo số giả ngẫu nhiên mật mã dịng; tập chung vào thuật tốn tạo nên tạo số giả ngẫu nhiên RC4 Bài thi cuối kỳ môn ANM Tạo số giả ngẫu nhiên 1.1.Nguyên tắc tạo số giả ngẫu nhiên 1.1.1.Số giả ngẫu nhiên Số ngẫu nhiên đóng vai trị quan trọng việc sử dụng mã hóa cho ứng dụng an ninh mạng khác sơ đồ phân phối khóa nhận thực lẫn nhau, tạo khóa phiên, tạo khóa cho thuật tốn mật mã khóa cơng khai RSA, hay tạo luồng bit cho mật mã dịng đối xứng Thơng thường , mối quan tâm việc tạo dãy số cho ngẫu nhiên dãy số ngẫu nhiên theo số ý nghĩa thống kê xác định rõ ràng Hai tiêu chí sau sử dụng để xác nhận dãy số ngẫu nhiên: Phân phối đồng nhất: Sự phân bố bit chuỗi phải đồng ; nghĩa tần suất xuất bit bit Độc lập: Không dãy dãy suy từ dãy khác Mặc dù có thử nghiệm xác định rõ ràng để xác định chuỗi bit phù hợp với phân phối cụ thể, chẳng hạn phân phối đồng nhất, khơng có thử nghiệm để “chứng minh” tính độc lập Thay vào đó, số thử nghiệm áp dụng để chứng minh trình tự khơng thể tính độc lập Chiến lược chung áp dụng số thử nghiệm đủ mạnh Có nghĩa là, số phép thử không cho thấy chuỗi bit không độc lập, có mức độ tin cậy cao chuỗi thực tế độc lập Trong ứng dụng nhận thức lẫn nhau, tạo khóa phiên mật mã dịng, tính khơng thể dự đốn trước u cầu u cầu khơng chỉ chuỗi số ngẫu nhiên thống kê mà thành phần chuỗi cịn phải khơng dự đốn trước Với chuỗi ngẫu nhiên "đúng", số độc lập mặt thống kê với số khác chuỗi khơng thể đoán trước Mặc dù số ngẫu nhiên thực sử dụng số ứng dụng, chúng có hạn chế chẳng hạn tính hiệu Do vậy, việc sử dụng thuật toán để tạo chuỗi số ngẫu nhiên hiệu Bài thi cuối kỳ môn ANM 1.1.2 TRNG, PRNG PRF Các ứng dụng mật mã thường sử dụng kỹ thuật thuật toán để tạo số ngẫu nhiên Các thuật tốn xác định tạo chuỗi số ngẫu nhiên thống kê Tuy nhiên, thuật toán tốt, chuỗi kết vượt qua nhiều kiểm tra tính ngẫu nhiên Những số gọi số giả ngẫu nhiên Hình mơ tả tạo số ngẫu nhiên thực (TRNG) với hai dạng tạo số ngẫu nhiên giả TRNG có đầu vào nguồn thực ngẫu nhiên; nguồn thường đề cập đến nguồn entropy (entropy source) Về chất, nguồn entropy lấy từ môi trường vật lý máy tính tính đến mẫu định thời bấm phím, hoạt động ổ đĩa , di chuyển chuôt giá trị tức thời đồng hồ hệ thống Một nguồn, kết hợp nguồn, đóng vai trị đầu vào cho thuật toán tạo đầu chuỗi nhị phân ngẫu nhiên TRNG chỉ đơn giản việc chuyển đổi nguồn tương tự thành đầu nhị phân TRNG bao gồm trình xử lý bổ sung để khắc phục sai lệch nguồn Hình 1.1 : Nguyên lý tạo số ngẫu nhiên giả ngẫu nhiên Ngược lại, PRNG nhận đầu vào giá trị cố định, gọi hạt giống (Seed) tạo chuỗi bit đầu cách sử dụng thuật tốn xác định Thơng thường, hạt giống (Seed) tạo TRNG Như chỉ hình 1.1, số kết Bài thi cuối kỳ mơn ANM thuật tốn phản hồi lại đầu vào thuật toán đường hồi tiếp Chú ý rằng, dòng bit đầu xác định chỉ nhiều giá trị đầu vào, kẻ cơng mà biết thuật tốn seed tạo lại tồn dịng bit Hình 1.1 đưa hai tạo chuỗi giả ngẫu nhiên khác : Bộ tạo số giả ngẫu nhiên: Thuật toán sử dụng để tạo chuỗi bit có kết thúc mở gọi PRNG.Ứng dụng phổ biến cho chuỗi bit đầu vào cho mật mã dòng đối xứng Hàm giả ngẫu nhiên (PRF): PRF sử dụng để tạo chuỗi bit giả ngẫu nhiên gồm bit có độ dài cố định Thơng thường, PRF có đầu vào hạt giống (Seed) cộng với thông tin khác, chẳng hạn ID người dùng ID ứng dụng 1.1.3 Yêu cầu PRNG Khi PRNG PRF sử dụng cho ứng dụng mật mã, u cầu kẻ thù khơng biết seed (hạt giống) xác định chuỗi giả mã Ví dụ: dịng bit giả ngẫu nhiên sử dụng mật mã dịng, kiến thức dòng bit giả ngẫu nhiên cho phép máy quét khôi phục rõ từ mã Tương tự, muốn bảo vệ giá trị đầu PRF Trong trường hợp thứ hai này, xem xét tình sau Một seed (hạt giống) 128 bit, với thông tin khác , sử dụng để tạo khóa bí mật 128 bit sau sử dụng cho mã hóa đối xứng Trong trường hợp bình thường, khóa 128 bit an tồn trước công Tuy nhiên, PRF không tạo giá trị đầu 128 bit ngẫu nhiên hiệu quả, đối thủ thu hẹp khả sử dụng thành công công Yêu cầu chung cho việc bảo mật đầu PRNG PRF dẫn đến yêu cầu cụ thể lĩnh vực ngẫu nhiên, khơng thể đốn trước đặc tính seed (hạt giống) Về tính ngẫu nhiên, u cầu PRNG dịng bit tạo xuất ngẫu nhiên xác định Khơng có thử nghiệm đơn lẻ xác định liệu PRNG có tạo số có đặc điểm tính ngẫu nhiên hay khơng Điều tốt làm áp dụng chuỗi thử nghiệm cho PRNG Nếu PRNG thể tính ngẫu nhiên sở nhiều phép thử, giả định thỏa mãn yêu cầu tính ngẫu nhiên NIST SP 800-22 (Bộ thử nghiệm thống kê cho trình tạo số ngẫu nhiên giả ngẫu nhiên cho ứng dụng mật mã) chỉ định thử nghiệm nên tìm cách thiết lập ba đặc điểm sau: Bài thi cuối kỳ mơn ANM Tính đồng (Uniformity) : Tại thời điểm trình tạo chuỗi bit ngẫu nhiên giả ngẫu nhiên, xuất có khả nhau, nghĩa xác suất bit xác 1/2 Số lượng số không (hoặc số một) dự kiến n / 2, n = độ dài chuỗi Khả mở rộng (Scalability) : Bất kỳ thử nghiệm áp dụng cho trình tự áp dụng cho chuỗi trích xuất cách ngẫu nhiên Nếu chuỗi ngẫu nhiên, dãy trích xuất phải ngẫu nhiên Do đó, dãy trích xuất phải vượt qua kiểm tra tính ngẫu nhiên Tính quán (Consistency): Hành vi trình tạo phải quán giá trị bắt đầu (seeds) Việc kiểm tra PRNG dựa sản phẩm từ hạt giống đơn lẻ TRNG sản phẩm tạo từ đầu vật lý không đủ Một dòng số giả ngẫu nhiên nên thể hai dạng khơng thể đốn trước: Khơng thể dự đoán trước (Forward unpredictability) : Nếu hạt giống (Seed) khơng xác định, bit đầu chuỗi khơng thể đốn trước có kiến thức bit trước chuỗi Khơng thể dự đốn ngược (Backward unpredictability): Cũng không khả thi xác định nguồn gốc từ kiến thức giá trị tạo Khơng có mối tương quan hạt giống giá trị tạo từ hạt giống nên rõ ràng; phần tử dãy phải kết kiện ngẫu nhiên độc lập có xác suất 1/2 1.1.4 Yêu cầu seed Đối với ứng dụng mật mã, hạt giống đóng vai trị đầu vào cho PRNG phải bảo mật Bởi PRNG thuật tốn xác định, đối thủ suy seed(hạt giống), đầu xác định Vì vậy, seed (hạt giống) phải khơng thể đoán trước Trên thực tế, thân seed (hạt giống) phải số ngẫu nhiên giả ngẫu nhiên 10 Bài thi cuối kỳ môn ANM Thường seed (hạt giống) tạo TRNG, hình 1.2 Đây chương trình khuyến nghị SP800-90 Người đọc thắc mắc, có TRNG, cần sử dụng PRNG Nếu ứng dụng mật mã dịng TRNG khơng thực tế Người gửi cần tạo dịng khóa gồm bit dài rõ sau truyền dịng khóa mã cách an tồn đến người nhận Nếu PRNG sử dụng, người gửi chỉ cần tìm cách chuyển khóa mật mã dịng, thường 54 128 bit, tới người nhận theo cách an tồn Hình 1.2 : Sự phát sinh đầu vào Seed đến PRNG Ngay trường hợp ứng dụng PRF, chỉ có số lượng bit giới hạn tạo ra, thông thường nên sử dụng TRNG để cung cấp seed (hạt giống) cho PRF sử dụng đầu PRF sử dụng TRNG trực tiếp TRNG tạo chuỗi nhị phân với số sai lệch PRF có tác dụng “ngẫu nhiên hóa” đầu TRNG để loại bỏ sai lệch đó.Cuối cùng, chế sử dụng để tạo số ngẫu nhiên thực tạo bit với tốc độ đủ để theo kịp ứng dụng yêu cầu bit ngẫu nhiên 11 Bài thi cuối kỳ môn ANM 1.1.5 Thiết kế thuật toán (Algorithm Design) Mật mã PRNG chủ đề nhiều nghiên cứu nhiều năm qua nhiều loại thuật toán phát triển Chúng chia thành hai loại Các thuật tốn xây dựng có mục đích (Purpose-built algorithms) : Đây thuật toán thiết kế đặc biệt cho mục đích tạo luồng bit giả ngẫu nhiên Một số thuật toán sử dụng cho nhiều ứng dụng PRNG khác nhau; số số mô tả phần Những người khác thiết kế đặc biệt để sử dụng mật mã luồng Ví dụ quan trọng sau RC4 Giải thuật dựa thuật tốn mật mã có (Algorithms based on existing cryptographic algorithms ) : Các thuật toán mật mã có tác dụng ngẫu nhiên hóa liệu đầu vào Thật vậy, yêu cầu thuật tốn Ví dụ, mật mã khối đối xứng tạo mã có mẫu thơng thường định đó, hỗ trợ trình phân tích mật mã Do đó, thuật tốn mật mã đóng vai trị cốt lõi PRNG Ba loại thuật toán mật mã lớn thường sử dụng để tạo PRNG: Mật mã khối đối xứng Mật mã không đối xứng: Các khái niệm lý thuyết số sử dụng cho mật mã khơng đối xứng điều chỉnh cho PRNG Hàm băm mã xác thực tin nhắn Bất kỳ cách tiếp cận số mang lại PRNG mạnh mặt mật mã Một thuật tốn xây dựng theo mục đích cung cấp hệ điều hành để sử dụng chung Đối với ứng dụng sử dụng số thuật toán mật mã định để xác thực mã hóa, việc sử dụng lại mã cho PRNG hợp lý Do đó, tất phương pháp sử dụng phổ biến 12 Bài thi cuối kỳ môn ANM 1.2 Bộ tạo số giả ngẫu nhiên Trong phần này, xem xét hai loại thuật toán cho PRNG 1.2.1 Các tạo đồng dạng tuyến tính (Linear Congruential) Đây kỹ thuật sử dụng rộng rãi cho việc tạo số giả ngẫu nhiên, thuật toán đồng dạng tuyến tính Thuật tốn bao gồm có tham số sau: Chuỗi số ngẫu nhiên {Xn} tính sau: Xn+1 = (aXn + c) mod m Nếu m, a, c, X0 số nguyên, kĩ thuật tạo chuỗi số nguyên với số nguyên nằm dải < Xn< m Việc lựa chọn giá trị cho a, c, m vấn đề then chốt việc phát triển tạo số ngẫu nhiên tốt Ví dụ, với a = c = Chuỗi tạo rõ ràng không thỏa mãn Với giá trị a 7, c = 0, m = 32, X0 = Bộ tạo ngẫu nhiên tạo chuỗi {7, 17, 23, 1, 7, }, chuỗi không thỏa mãn Trong số 32 giá trị có thể, chỉ bốn giá trị sử dụng; đó, chuỗi coi có chu kỳ Nếu thay a 5, chuỗi {5, 25, 29, 17, 21, 9, 13, 1, 5, }, chu kỳ tăng lên thành Nếu m số lớn, có khả tạo chuỗi dài số ngẫu nhiên khác Tiêu chí chung m gần với số ngun khơng âm lớn máy tính xác định trước Do đó, giá trị m gần 231 lựa chọn Có ba tiêu chí sử dụng để đánh giá tạo số ngẫu nhiên sau: Hàm tạo hàm tạo toàn chu kỳ Nghĩa là, hàm tạo tạo tất số từ đến m-1 trước lặp lại Chuỗi tạo phải ngẫu nhiên Hàm thực cách hiệu với số 32 bit Với giá trị thích hợp a, c, m, chuỗi số tạo đáp ứng ba tiêu chí đánh giá Với tiêu chí đánh giá đầu tiên, m số nguyên tố c = 0, Nhóm 22 13 Bài thi cuối kỳ mơn ANM giá trị a, chu kỳ hàm tạo số ngẫu nhiên m-1 Đối với số 32 bit, giá trị nguyên tố m 231-1 Do đó, hàm tạo số ngẫu nhiên trở thành: Xn-1 = aXn mod ( 231 – 1) Độ mạnh thuật tốn đồng dạng tuyến tính phụ thuộc vào số nhân a m lựa chọn Tuy nhiên, khơng có ngẫu nhiên thuật toán, ngoại trừ việc lựa chọn giá trị khởi tạo X0 Khi giá trị lựa chọn, số lại chuỗi theo sau xác định Điều lợi cho kẻ công, chỉ cần biết phần nhỏ (ví dụ a = 75, c = 0, m = 231-1) chuỗi số đủ để xác định tham số thuật toán Giả sử kẻ cơng có khả xác định giá trị X0, X1, X2, X3, : X1 = (aX0 + c) mod m X2 = (aX1 + c) mod m X3 = (aX2 + c) mod m Từ phương trình này, giá trị a, c, m tìm Do đó, mục tiêu PRNG để phần chuỗi mà kẻ cơng khám phá không đủ để xác định thành phần chuỗi Ta đạt mục tiêu cách sử dụng đồng hồ hệ thống nội để thay đổi dòng số ngẫu nhiên Một cách sử dụng đồng hồ khởi tạo lại chuỗi sau N số sử dụng giá trị đồng hồ (mod m) làm seed mới.Cách khác đơn giản thêm giá trị đồng hồ vào số ngẫu nhiên (mod m) 1.2.2 Bộ tạo BBS (Blum Blum Shub) Bộ tạo BBS phương pháp phổ biến để tạo số giả ngẫu nhiên an toàn Hoạt động tạo mô tả sau : Đầu tiên, lựa chọn hai số nguyên tố lớn, p q Hai số chia cho có số dư 3, nghĩa : p(mod ) = q(mod 4) = Ví dụ, số nguyên tố 11 thỏa mãn điều kiện Đặt n = p x q Nhóm 22 14 Bài thi cuối kỳ mơn ANM Hình 1.3 Sơ đồ khối tạo số BBS Tiếp theo, chọn số ngẫu nhiên s , cho p q thừa số s Sau đó, tạo BBS tạo chuỗi bit Bi theo thuật toán sau: X0 = s2 mod n for i = to ∞ X i = (X i – ) mod n B i = X i mod Do đó, bit có ý nghĩa thấp lấy vòng lặp Bảng sau chỉ ví dụ hoạt động tạo BBS với n =192649 = 383 x 503và seed s = 101355 Bảng Ví dụ hoạt động BBS BBS gọi tạo bit giả ngẫu nhiên an tồn bảo mật (CSPRBG) Tính an toàn BBS phụ thuộc vào hai thừa số nguyên tố p q n Nhóm 22 15 Bài thi cuối kỳ mơn ANM Mật mã dịng Mật mã dòng thực mật mã rõ theo byte thời điểm, mật mã dòng thiết kế để hoạt động bit thời điểm đơn vị lớn byte thời điểm Hình 2.1 đưa sơ đồ cấu trúc mật mã dòng.Trong cấu trúc này, khóa đầu vào tạo bit giả ngẫu nhiên Bộ tạo bit giả ngẫu nhiên tạo dòng số bit ngẫu nhiên Đầu tạo, gọi dịng khóa, kết hợp byte thời điểm với dòng rõ sử dụng phép XOR Ví dụ, byte tạo tạo 01101100 byte rõ 11001100, byte mã là: Giải mật mã yêu cầu sử dụng chuỗi giả ngẫu nhiên: Hình 2.1 : Sơ đồ mật mã dịng Nhóm 22 16 Bài thi cuối kỳ mơn ANM Mật mã dịng tương tự mật mã hóa One-Time Pad Điểm quan trọng mật mã dòng tạo số ngẫu nhiên Nếu chọn khóa có chiều dài ngắn khơng bảo đảm an tồn, cịn chọn khóa có chiều dài chiều dài tin One-Time Pad lại khơng thực tế Bộ tạo số mật mã dòng cân hai điểm này, cho phép dùng khóa ngắn dãy số tạo bảo đảm độ ngẫu nhiên cần thiết khóa Onetime Pad, dùng khơng hồn tồn thực ngẫu nhiên.Phần trình bày phương pháp mật mã hóa dịng tiêu biểu RC4 Với trình tạo số giả ngẫu nhiên thiết kế phù hợp, mật mã dịng an tồn mật mã khối có độ dài khóa tương đương Một lợi tiềm mật mã dòng mật mã dịng khơng sử dụng mật mã khối khối xây dựng thường nhanh sử dụng mã nhiều so với mật mã khối Ví dụ này, RC4, thực chỉ vài dòng mã Đối với ứng dụng yêu cầu mã hóa / giải mã luồng liệu, chẳng hạn qua kênh truyền thông liệu trình duyệt / liên kết Web, mật mã dịng lựa chọn thay tốt Đối với ứng dụng xử lý khối liệu, chẳng hạn truyền tệp, e-mail sở liệu, mật mã khối thích hợp Tuy nhiên, hai loại mật mã sử dụng hầu hết ứng dụng RC4 RC4 mật mã dòng thiết kế vào năm 1987 Ron Rivest cho RSA Security Nó mật mã dịng kích thước khóa thay đổi với hoạt động hướng byte Thuật toán dựa việc sử dụng hoán vị ngẫu nhiê RC4 sử dụng tiêu chuẩn bảo mật lớp cổng bảo mật / lớp truyền tải (SSL / TLS) xác định để giao tiếp trình duyệt Web máy chủ Ngồi RC4 cịn sử dụng giao thức mã hóa WEP giao thức WPA (Wifi Protected Access) mạng Wireless LAN.Vào tháng năm 1994, thuật toán RC4 đưa lên Internet cách ẩn danh danh sách người bán lại ẩn danh Cypherpunks Thuật toán RC4 đơn giản Khóa có độ dài thay đổi từ tới 128 byte (8 đến 2048 bit) sử dụng để khởi tạo vector S gồm 256 byte, với phần tử S[0], S[1], , S[255] Tại tất thời điểm S gồm hoán số bit từ đến 255 Đối với q trình mật mã hóa giải mật mã, byte k (hình 2.32) tạo từ S cách lựa chọn 255 phần tử theo cách có hệ thống Khi giá trị k tạo ra, phần tử S lại hoán vị lần Khởi tạo S Để bắt đầu, phần tử S thiết lập với giá trị từ đến 255 theo tứ tự tăng dần; nghĩa S[0]=0, S[1]=1, , S[255]=255 Một vector tạm thời T tạo Nếu độ dài khóa K 256 byte, K chuyển tới T Nếu khơng, khóa có độ Nhóm 22 17 Bài thi cuối kỳ môn ANM dài keylen byte, keylen phần tử T chép từ K, sau K lặp lại nhiều lần để điền đầy vào T Hoạt động tóm tắt sau: for i = to 255 S[i] = i; T[i] = K[i mod keylen]; Tiếp theo, T sử dụng để tạo hoán vị S, cụ thể sau: j = 0; for i = to 255 j = (j + S[i] + T[i]) mod 256; Swap (S[i], S[j]); Bởi phép tốn thực S chỉ tráo đổi phần tử S, ảnh hưởng hoán vị S chứa tất số từ đến 255 Tạo luồng Sau vectơ S khởi tạo, khóa đầu vào khơng sử dụng Tạo luồng liên quan đến việc vòng qua tất phần tử S [i] S [i], hoán đổi S [i] với byte khác S theo lược đồ chỉ định cấu hình S Sau S [255] đạt được, trình tiếp tục, bắt đầu lại từ S [0]: i, j = 0; while (true) i = (i + 1) mod 256; j = (j + S[i]) mod 256; Swap (S[i], S[j]); t = (S[i] + S[j]) mod 256; k = S[t]; Để mật mã hóa, thực phép XOR giá trị k với byte rõ Để giải mật mã, thực XOR giá trị k với byte mã Nhóm 22 18 Bài thi cuối kỳ mơn ANM Hình 3.1 minh họa hoạt động RC4 Hình 3.1: RC4 Quá trình tạo số RC4 tạo dãy số ngẫu nhiên, khó đốn trước, RC4 đạt mức độ an tồn cao mật mã hóa One-Time Pad Mật mã hóa RC4 hồn tồn thực số nguyên byte tối ưu cho việc thiết lập phần mềm tốc độ thực nhanh so với mật mã khối Nhóm 22 19 Bài thi cuối kỳ môn ANM So sánh PRNG TRNG ứng dụng số giả ngẫu nhiên 4.1 So sánh PRNG TRNG PRNG có hiệu quả, có nghĩa chúng tạo nhiều số thời gian ngắn mang tính xác định, nghĩa dãy số định tái tạo vào ngày sau điểm bắt đầu dãy biết Tính hiệu đặc điểm tốt ứng dụng bạn cần nhiều số tính xác định hữu ích bạn cần phát lại dãy số giai đoạn sau PRNG thường theo chu kỳ, có nghĩa trình tự cuối lặp lại Trong tính chu kỳ khơng phải đặc tính mong muốn, PRNG đại có khoảng thời gian dài đến mức bị bỏ qua cho hầu hết mục đích thực tế TRNG nói chung hiệu so với PRNG, nhiều thời gian để tạo số Điều cho thấy khó khăn nhiều ứng dụng Ví dụ, hệ thống mật mã ngân hàng an ninh quốc gia cần tạo hàng triệu bit ngẫu nhiên giây TRNG khơng có tính xác định, có nghĩa khơng thể tái tạo dãy số định, dãy số tất nhiên xảy nhiều lần cách tình cờ TRNG khơng có chu kỳ Pseudorandom Number True Random Number Generators Generators Efficiency (Hiệu quả) Rất hiệu Nói chung khơng hiệu Determinism (xác định) Xác định Không xác định Theo chu kỳ Periodicity (Tính chu kỳ) Khơng theo chu kỳ Bảng So sánh PRNG TRNG Nhóm 22 20 Bài thi cuối kỳ môn ANM 4.2 Ứng dụng số giả ngẫu nhiên Sau số ứng dụng phổ biến số giả ngẫu nhiên : a Mô Nhiều mơ hình giả lập tạo phần nhờ tạo số giả ngẫu nhiên (PRNG) chúng tạo lượng liệu ngẫu nhiên lớn, tương đối tốt tốn chi phí so với việc dùng tạo số ngẫu nhiên thực (TRNG) Trong hàng không, đặc biệt hàng không vũ trụ, mô điều kiện thời tiết (dùng thiết bị mô điều kiện bay hay kế hoạch đáp vệ tinh lên Hỏa NASA) dùng PRNG lượng liệu ngẫu nhiên cần lớn Với kỹ sư, kiểm tra cầu xây có tốt khơng hay mẫu xe thiết kế có tiết kiệm xăng khơng, đa số dùng mơ máy tính chi phí thử nghiệm cho việc cao b Game Nhiều yếu tố game thường dựa vào PRNG Với game đơn giản Solitaire, Minesweeper, việc chia bài, xếp có mìn Cịn game có lập trình phức tạp League of Legend, Bloodborne, số giả ngẫu nhiên góp phần định hành động NPC (non-player character hay nhân vật máy tính điều khiển) c Mã hóa Mặc dù đa phần thuật tốn mã hóa thường ưu tiên sử dụng số ngẫu nhiên thực sự, PRNG, số sinh từ “khó đốn”, dùng cho mục đích khơng q quan trọng Một số PRNG kết hợp với TRNG để tạo giá trị đầu ngẫu nhiên có ứng dụng số thiết bị Unixes d Các ứng dụng khác Số giả ngẫu nhiên cịn dùng cho số việc khác in câu nói ngày lên lịch treo tường Nhóm 22 21 Bài thi cuối kỳ môn ANM Kết luận Số ngẫu nhiên đóng vai trị quan trọng việc sử dụng mã hóa cho ứng dụng an ninh mạng khác sơ đồ phân phối khóa nhận thực lẫn nhau, tạo khóa phiên, tạo khóa cho thuật tốn mật mã khóa công khai RSA, hay tạo luồng bit cho mật mã dòng đối xứng Các ứng dụng mật mã thường sử dụng kỹ thuật thuật toán để tạo số ngẫu nhiên Các thuật tốn xác định tạo chuỗi số ngẫu nhiên thống kê Tuy nhiên, thuật toán tốt, chuỗi kết vượt qua nhiều kiểm tra tính ngẫu nhiên Những số gọi số giả ngẫu nhiên Khi PRNG PRF sử dụng cho ứng dụng mật mã, u cầu kẻ thù khơng biết seed (hạt giống) xác định chuỗi giả mã Bộ tạo số giả ngẫu nhiên bao gồm hai kỹ thuật : tạo đồng dạng tuyến tính tạo BBS Mật mã dòng phương pháp thực mật mã rõ theo byte thời điểm Với trình tạo số giả ngẫu nhiên thiết kế phù hợp, mật mã dịng an tồn mật mã khối có độ dài khóa tương đương.Mật mã dòng tiêu biểu RC4 RC4 mật mã dịng kích thước khóa thay đổi với hoạt động hướng byte Thuật toán dựa việc sử dụng hoán vị ngẫu nhiên RC4 sử dụng tiêu chuẩn bảo mật lớp giao tiếp trình duyệt Web máy chủ Thuật toán đơn giản So sánh PRNG TRNG, ta thấy PRNG có hiệu so với TRNG PRNG tạo nhiều số thời gian ngắn cịn TRNG ngược lại Số giả ngẫu nhiên ứng dụng đa dạng nhiều lĩnh vực : mơ , game mã hóa Nhóm 22 22 Bài thi cuối kỳ môn ANM Tài liệu tham khảo 1) [1] An ninh mạng Viễn Thông (bài giảng) Biên soạn: TS Nguyễn Chiến Trinh; PGS.TS Nguyễn Tiến Ban; TS Hoàng Trọng Minh; ThS Nguyễn Thanh Trà; ThS Phạm Anh Thư -Học viện Cơng nghệ Bưu Viễn thông, Hà Nội/2017 2) William Stallings, Cryptography and Network Security Principles and Practices, Fourth Edition, November 16, 2005 3) Lưu Quang Hải Sơn – Số giả ngẫu nhiên ứng dụng / PiMA - Projects in Mathematics and Applications ; https://pimavn.github.io/ Nhóm 22 23 ... tạo số giả ngẫu nhiên mật mã dòng; tập chung vào thuật toán tạo nên tạo số giả ngẫu nhiên RC4 Bài thi cuối kỳ môn ANM Tạo số giả ngẫu nhiên 1.1.Nguyên tắc tạo số giả ngẫu nhiên 1.1.1 .Số giả ngẫu. .. Giải thích khái niệm số ngẫu nhiên nguyên tắc tạo số giả ngẫu nhiên Trình bày tổng quan yêu cầu tạo số giả ngẫu nhiên + Tổng quan mật mã dòng RC4 + So sánh tạo số ngẫu nhiên thực (TRNG) tạo. .. nhiều kiểm tra tính ngẫu nhiên Những số gọi số giả ngẫu nhiên Hình mô tả tạo số ngẫu nhiên thực (TRNG) với hai dạng tạo số ngẫu nhiên giả TRNG có đầu vào nguồn thực ngẫu nhiên; nguồn thường đề