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

Bài báo cáo bài tập lớn phương pháp hoán vị giả ngẫu nhiên

32 8 0

Đ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 đề Phương Pháp Hoán Vị Giả Ngẫu Nhiên
Tác giả Nguyễn Hoàng Đức, Trần Quốc Định, Bùi Trần Quốc Cường, Phạm Tuấn Nam, Phạm Hoàng Thịnh, Đỗ Tuấn Sơn
Người hướng dẫn TS. Đỗ Xuân Chợ
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Kỹ thuật Thông Tin
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 32
Dung lượng 337,55 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Chương 1: Phương pháp LSB (4)
    • 1.1. Tổng quan về phương pháp thay thế LSB (4)
    • 1.2. Phương pháp giấu tin và tách tin trên k bit LSB (6)
      • 1.2.1. Phương pháp giấu tin (6)
      • 1.2.2. Phương pháp tách tin (7)
    • 1.3. Phương pháp giấu tin và tách tin trên k bit LSB nâng cao (7)
      • 1.3.1. Phương pháp giấu tin (7)
      • 1.3.2. Phương pháp tách tin (9)
    • 1.4. Đánh giá phương pháp LSB (10)
  • Chương 2: Tạo số giả ngẫu nghiên (11)
    • 2.1. Giới thiệu (11)
    • 2.2. Thuật toán tạo ra các số giả ngẫu nhiên (11)
      • 2.2.1 Phương pháp cơ bản (11)
      • 2.2.2 Phương pháp dựa trên mật mã học nguyên thuỷ (18)
      • 2.2.3 Phương pháp dựa trên lý thuyết số học (18)
      • 2.2.4 Phương pháp đặc biệt (19)
  • Chương 3: Phương pháp hoán vị giả ngẫu nhiên và Demo (22)
    • 3.1. Ý tưởng thực hiện (22)
    • 3.2. Quá trình giấu tin (23)
    • 3.3. Quá trình giải tin (24)
    • 3.4. Đánh giá (24)
    • 3.5. Demo (24)
  • Tài liệu tham khảo (32)

Nội dung

Tổng quan về phương pháp thay thế LSB Ý tưởng cơ bản của kỹ thuật này là tiến hành giấu tin vào vị trí các bit ít quan trọng LSB đối với mỗi phần tử trong bảng màu.. Đây là phương pháp g

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN

Học phần

:

Các kỹ thuật giấu tin

Bài báo cáo bài tập lớn:

Phương pháp hoán vị giả ngẫu nhiên

Giảng viên hướng dẫn: TS Đỗ Xuân Chợ

Sinh viên thực hiện:

Nguyễn Hoàng Đức B17DCAT046

Trần Quốc Định B17DCAT038

Bùi Trần Quốc Cường B17DCAT026

Phạm Tuấn Nam B17DCAT134

Phạm Hoàng Thịnh B17DCAT174

Hà Nội 2021

Trang 2

Mục lục

DANH MỤC HÌNH ẢNH 3

Chương 1: Phương pháp LSB 4

1.1 Tổng quan về phương pháp thay thế LSB 4

1.2 Phương pháp giấu tin và tách tin trên k bit LSB 6

1.2.1 Phương pháp giấu tin 6

1.2.2 Phương pháp tách tin 7

1.3 Phương pháp giấu tin và tách tin trên k bit LSB nâng cao 7

1.3.1 Phương pháp giấu tin 7

1.3.2 Phương pháp tách tin 9

1.4 Đánh giá phương pháp LSB 10

Chương 2: Tạo số giả ngẫu nghiên 11

2.1 Giới thiệu 11

2.2 Thuật toán tạo ra các số giả ngẫu nhiên 11

2.2.1 Phương pháp cơ bản 11

2.2.2 Phương pháp dựa trên mật mã học nguyên thuỷ 18

2.2.3 Phương pháp dựa trên lý thuyết số học 18

2.2.4 Phương pháp đặc biệt 19

Chương 3: Phương pháp hoán vị giả ngẫu nhiên và Demo 22

3.1 Ý tưởng thực hiện 22

3.2 Quá trình giấu tin 23

3.3 Quá trình giải tin 24

3.4 Đánh giá 24

3.5 Demo 25

Thuật toán giấu tin 25

Thuật toán tách tin 30

Tài liệu tham khảo 32

Trang 3

DANH MỤC HÌNH ẢNH

Hình 1: Bit có trọng số thấp LSB 4

Hình 2: Quá trình giấu tin 5

Hình 3: Quá trình lấy thông tin ra khỏi ảnh 5

Hình 4: Sơ đồ nhúng và tách tin của phương pháp hoán vị giả ngẫu nhiên 23

Trang 4

Chương 1: Phương pháp LSB

1.1 Tổng quan về phương pháp thay thế LSB

Ý tưởng cơ bản của kỹ thuật này là tiến hành giấu tin vào vị trí các bit ít quan

trọng LSB đối với mỗi phần tử trong bảng màu

Đây là phương pháp giấu tin đơn giản nhất, thông điệp dưới dạng nhị phân sẽ

được giấu (nhúng) vào các bit LSB – là bit có ảnh hưởng ít nhất tới việc quyết định tới

màu sắc của mỗi điểm ảnh Vì vậy khi ta thay đổi bit ít quan trọng của một điểm ảnh thì

màu sắc của mỗi điểm ảnh mới sẽ tương đối gần với điểm ảnh cũ Ví dụ đối với ảnh 16

bit thì 15 bit là biểu diễn 3 màu RGB của điểm ảnh còn bit cuối cùng không dùng đến thì

ta sẽ tách bit này ra ở mỗi điểm ảnh để giấu tin…

Ví dụ: Tách bit cuối cùng trong 8 bit biểu diễn mỗi điểm ảnh của ảnh 256

Hình 1: Bit có trọng số thấp LSB

Trong phép tách này ta coi bit cuối cùng là bit ít quan trọng nhất, thay đổi giá trị

của bit này thì sẽ thay đổi giá trị của điểm ảnh lên hoặc xuống đúng một đơn vị, với sự

thay đổi nhỏ đó ta hi vọng là cấp độ màu của điểm ảnh sẽ không bị thay đổi nhỉều

Trang 5

Hình 2: Quá trình giấu tin

Hình 3: Quá trình lấy thông tin ra khỏi ảnh

Trang 6

1.2 Phương pháp giấu tin và tách tin trên k bit LSB

1.2.1 Phương pháp giấu tin

Đầu vào của phương pháp bao gồm:

 Ảnh gốc C làm môi trường để giấu

 Thông tin bí mật M

Đầu ra: Ảnh đã được giấu thông tin mật

Quá trình giấu tin vào trong ảnh sử dụng k bit LSB như sau:

- Với C là ảnh nguyên bản 8-bit màu xám, kích thước 𝑀𝑐 × 𝑁𝑐 điểm ảnh Người

giấu tin sẽ thực hiện biểu diễn ma trận điểm ảnh về dạng số thập phân Công thức biến

đổi tổng quát như sau:

C = {𝑥𝑖𝑗 | 0 ≤ i ≤ 𝑀𝑐, 0 ≤ j ≤ 𝑁𝑐, 𝑥𝑖𝑗 = {0, 1, 2, …, 255}}

- Sau khi ảnh C đã được chuyển thành ma trận điểm ảnh thì tiếp tục chuyển ma trận

điểm ảnh này về mảng 1 chiều I với i phần tử, sau đó chuyển các điểm ảnh về dạng nhị

phân

- thông điệp M chiều dài n bit sẽ chuyển về dạng nhị phân:

M = {𝑚𝑖 | 0 ≤ I < 𝑛, 𝑚𝑖{0,1}}

- Cứ 8 bit ảnh tách bỏ số bit LSB ngoài cùng bên phải và ghép phần còn lại với k bit

nhị phân đầu của thông điệp (k có thể là 2 hoặc 4 bit), kết quả thu được đưa về dạng thập

phân rồi gán ngược lại vào I(i) Cuối cùng chuyển đổi ảnh giá trị nhị phân trong mảng I

từ mảng một chiều về mảng 2 chiều 𝑀𝑐× 𝑁𝑐 phần tử, ta được ảnh mới đã giấu tin

Ví dụ minh họa quy trình giấu tin:

Giả sử có 4 điểm ảnh đầu tiên là:

Chuyển các điểm ảnh về dạng nhị phân thu được kết quả như sau:

00001100 01100010 10010110 11001000Thông điệp bí mật M là chữ ‘b’ có mã ASCII là 98, biểu diễn dưới dạng nhị phân

như sau: 01100010

Trang 7

Quy trình giấu thông tin: Cứ 8 bit ảnh, lấy 6 bit đầu của điểm ảnh (từ vị trí I0 đến

I5) ghép với 2 bit thông điệp (từ vị trí a0 đến a1) sẽ được:

00001101 01100010 10010100 11001010Như vậy, ảnh sau khi giấu thông điệp M có điểm ảnh dạng nhị phân như sau:

00001101 01100010 10010100 11001010

1.2.2 Phương pháp tách tin

Cũng tương tự như quá trình giấu tin trong ảnh, quá trình tách tin trong ảnh cũng

được thực hiện theo các giai đoạn tương tự

 Đầu vào: Ảnh mang tin

 Đầu ra: Ảnh đã tách tin và thông tin bí mật

Quá trình thực hiện như sau:

- Biểu diễn ma trận điểm ảnh về dạng số thập phân với 𝑀𝑐 × 𝑁𝑐 phần tử

Chuyển đổi ma trận ảnh 𝑀𝑐 × 𝑁𝑐 phần tử về mảng 1 chiều I với i phần tử

- Chuyển các bit ảnh về dạng nhị phân, cứ 8 bit ảnh tách lấy k bit (k có thể là 2 hoặc

4 bit) ngoài cùng bên phải rồi ghép các kết quả này lại với nhau

- Kết quả thu được sử dụng hàm chuyển đổi từ chuỗi số nhị phân về chuỗi kí tự Sau

khi lặp lại quá trình trên số lần bằng số lần duyệt, thu được nội dung thông điệp

Ví dụ minh họa quy trình tách tin:

Lấy 2 bit ngoài cùng bên phải trong mỗi điểm ảnh mới:

00001101 01100010 10010100 11001010Ghép lại với nhau được chuỗi nhị phân thông điệp, chính là chữ ‘b’: 01100010

1.3 Phương pháp giấu tin và tách tin trên k bit LSB nâng cao

1.3.1 Phương pháp giấu tin

Đầu vào:

- Ảnh gốc cấp xám

Trang 8

- Biểu diễn thông tin giấu dưới dạng chuỗi nhị phân.

- Sử dụng một khóa 8 bit bất kỳ (khóa là kí tự, chuyển khóa về dạng mảng như với

thông điệp) đem mã hóa với chuỗi thông điệp bí mật bằng phép XOR: cứ 8 bit khóa đem

XOR với 8 bit đầu vào của thông điệp Thực hiện lại bước này cho đến khi nội dung

thông điệp được mã hóa hết

- Thông điệp đã mã hóa đem giấu vào ảnh tương tự như phương pháp thay thế k

bit LSB cổ điển: Là tách lấy 6 bit đầu của bit ảnh đem ghép với 2 bit đầu trong thông điệp

rồi chuyển về dạng thập phân và gán ngược lại vào ảnh

- Thực hiện cho đến khi lấy hết các bit của chuỗi nhị phân thông điệp để ghép với

các bit ảnh Chuyển đổi ảnh I từ mảng một chiều về mảng 2 chiều m x n phần tử, ta được

ảnh mới đã giấu tin

Ví dụ minh họa: Giả sử có 4 điểm ảnh đầu tiên là:

Chuyển các điểm ảnh về dạng nhị phân thu được kết quả như sau:

00001100 01100010 10010110 11001000Thông điệp bí mật M là chữ ‘c’ có mã ASCII là 97, biểu diễn dưới dạng nhị phân

như sau: 01100011

Trang 9

Nhập khóa, cũng là 1 kí tự 8 bit, giả sử là chữ ‘b’, có dạng nhị phân như sau:

01100010

Mã hóa thông điệp chính là dùng phép XOR(a, b) sẽ được: 00000001

Cứ 8 bit ảnh, ta lấy 6 bit đầu của điểm ảnh ghép với 2 bit thông điệp đã mã hóa sẽ

- Chuyển các bit ảnh về dạng nhị phân, cứ 8 bit ảnh tách lấy 2 bit ngoài cùng bên phải

Đem ghép các kết quả này lại với nhau

- Kết quả thu được sử dụng hàm chuyển đổi từ chuỗi số nhị phân về chuỗi kí tự Sau khi

lặp lại quá trình trên số lần bằng số lần duyệt, ta thu được nội dung thông điệp đã mã hóa

- Sử dụng hàm giải mã thực hiện giải mã thông điệp bằng khóa 8 bit, ta thu được kết quả

là nội dung gốc của thông điệp

- Trường hợp chuyển đổi thông điệp về bảng mã đã được quy ước sẵn: Tương tự như

trường hợp chuyển đổi kí tự về mã nhị phân của nó, nhưng ở đây khi giấu tin ta sử dụng

bảng quy đổi các kí tự và chữ số theo một chuẩn do người lập trình tự định nghĩa Đến

bước tách ta lại quy đổi ngược lại về dạng kí tự và số ban đầu

Trang 10

Ví dụ minh họa: Quy trình tách tin: Lấy 2 bit ngoài cùng bên phải trong mỗi điểm

ảnh mới: 00001100 01100000 10010100 11001001

Ghép lại với nhau được chuỗi nhị phân thông điệp nhưng đã bị mã hóa: 00000001

Sử dụng hàm mã hóa để lấy lại thông điệp gốc M, bằng cách XOR(M, b) ta được

nhị phân của chữ ‘c’: 01100011

1.4 Đánh giá phương pháp LSB

Ưu điểm:

 Chất lượng hình ảnh sau giấu tin hầu như không bị ảnh hưởng

 Kỹ thuật LSB đơn giản, dễ cài đặt và phát huy hiệu quả tốt trong nhiều ứng dụng

 Kỹ thuật LSB là nền tảng cơ bản cho nhiều kỹ thuật phức tạp sau này

Nhược điểm:

 Tính bền vững thấp; thông tin mật dễ bị thay đổi do sự tác động vào hình ảnh

 Phát hiện thông tin dễ dàng vì thuật toán đơn giản Để giải quyết nhược điểm này

trong quá trình giấu tin thường sử dụng khóa bí mật để mã hóa thông tin cần giấu

trước khi sử dụng kỹ thuật LSB hoặc áp dụng phương thức Seed Phương thức

Seed thông qua phép logarithm rời rạc để chọn ra các dãy pixel ngẫu nhiên thay

thế việc ánh xạ tuần tự mà LSB sử dụng Điều này cũng giúp thông tin giấu được

an toàn hơn vì để có được thông điệp, kẻ tấn công cần nắm rõ thuật toán được sử

dụng trong phương thức Seed

Trang 11

Chương 2: Tạo số giả ngẫu nghiên

2.1 Giới thiệu

Có rất nhiều phương pháp đáng tin cậy để sinh các số ngẫu nhiên cho việc mô

phỏng ngẫu nhiên thông qua các bộ sinh số ngẫu nhiên với cơ sở toán học vững chắc

Chúng ta sẽ xem xét một số phương pháp tạo số ngẫu nhiên quan trọng

Một phương pháp chấp nhận được để tạo số giả ngẫu nhiên phải đạt được các yêu

cầu sau:

1 Các số được tạo ra phải tuân theo phân phối đều, bởi vì thực sự các sự kiện ngẫu

nhiên đều tuân theo phân phối này Vì vậy, bất cứ một sự mô phỏng các sự kiện

ngẫu nhiên nào cũng tuân theo quy luật này hay ít nhất là xấp xỉ

2 Các số được tạo ra cần phải độc lập, nghĩa là giá trị của một số trong dãy số ngẫu

nhiên không ảnh hưởng đến giá trị của số kế tiếp

3 Dãy số ngẫu nhiên được tạo ra cần phải tái tạo lại được Điều này cho phép lặp lại

thí nghiệm mô phỏng

4 Dãy số không được lặp lại đối với bất cứ chiều dài nào Theo lý thuyết thì không

thể có, nhưng vì mục đích thực tế thì khả năng lặp lại của một chu kỳ dài là phù

hợp Chu kỳ lặp lại của một bộ số ngẫu nhiên được gọi là giai đoạn của nó

5 Việc tạo các số ngẫu nhiên cần phải nhanh chóng vì trong các nghiên cứu mô

phỏng, đòi hỏi cần có nhiều số ngẫu nhiên, nếu việc tạo các số diễn ra chậm thì có

thể mất nhiều thời gian và tăng giá thành các nghiên cứu mô phỏng

6 Trong việc taọ số ngẫu nhiên nên sử dụng càng ít bộ nhớ càng tốt Mô hình mô

phỏng thường đòi hỏi bộ nhớ lớn, do bộ nhớ thường có hạn nên việc giảm tối đa

việc chiếm dụng bộ nhớ trở nên rất cần thiết trong việc tạo ra số ngẫu nhiên

Chúng ta sẽ tìm hiểu một số phương pháp để tạo số ngẫu nhiên cơ bản Dựa vào

những phương pháp này, chúng ta sẽ tiếp tục trong chương tiếp theo để xem xét những

phương pháp tạo những số ngẫu nhiên mà có một phân phối nhất định, như phân phối số

mũ, phân phối chuẩn,

2.2 Thuật toán tạo ra các số giả ngẫu nhiên

2.2.1 Phương pháp cơ bản

a Phương pháp nửa bình phương (Middle-square method)

Kỹ thuật nửa bình phương do John von Neuman phát triển vào những năm 40 Bắt

đầu từ số đầu tiên cho trước, ta bình phương nó lên và số giữa của số bình phương này

Trang 12

được dùng làm số thứ hai của dãy số Kế tiếp, bình phương số thứ hai và lấy số giữa của

số bình phương này làm số thứ ba cho dãy số Quá trình cứ lặp lại tiếp tục như vậy

Phương pháp nửa bình phương có một số tính chất sau:

 Các dãy số được tạo ra có chu kỳ ngắn

 Bất kỳ lúc nào số 0 đều tạo ra các số bằng 0 (trường hợp ví dụ 1)

b Phương pháp đồng dư bậc hai

Phương pháp này gần như tương đương với phương pháp nửa bình phương nhưng

có chu kỳ dài hơn Mối quan hệ phép đệ quy cho phương pháp này được xác định bởi:

xn+1 = (xn(xn + 1)) mod m, với n 0, xo mod 4 =2, m= 2k

Ví dụ:

Với x0 = 2, m = 16 và tạo dãy số ngẫu nhiên sử dụng phương pháp đồng dư bậc hai

Trang 13

Phương pháp đồng dư bậc hai được sử dụng khi m là lũy thừa của 2, và có chu kỳ

dài hơn phương pháp nửa bình phương

c Phương pháp đồng dư tuyến tính (Linear congruence algorithm)

Phương pháp đồng dư tuyến tính (Linear Congruential Generators – LCG) là

phương pháp được sử dụng thông dụng nhất, được đưa ra đầu tiên bởi Lehmer Trạng thái

tại bước thứ n là một số nguyên x n và hàm chuyển T được định nghĩa như sau:

xn = (a xn-1 +c ) mod m, n ≥ 0

Trang 14

Trong đó: x 0 là giá trị khởi đầu cho trước (0¿xo ¿m)

a là hằng số nhân (0 ¿ a ¿m)

c là gia số (0¿c¿m)

m là modul (m > 0).

Chú ý :

1 Nếu a=1: phương pháp được gọi là phương pháp cộng

2 Nếu c=0: phương pháp được gọi là phương pháp nhân (multiplicative congruential

random number generator).

3 Nếu c¿0, phương pháp được gọi là phương pháp đồng dư hỗn tạp (mixed congruential

random number generator)

4 Các LCG nhân (c=0) nhanh hơn các LCG hỗn tạp (c¿0) do chúng có ít phép toán cộng

hơn

5 Trong thực tế phương pháp nhân được dùng nhiều hơn phương pháp cộng Bởi vì theo

phương pháp này xi+1 được xác định bởi xi.Do (m+1) giá trị xo,x1, , xm không thể phân

biệt, nên có ít nhất một giá trị xuất hiện 2 lần, ví dụ như xi và xi+k

Khi đó xi+k,…, xi+k-1 được lặp lại như xi+k,…, xi+2k-1 và như vậy dãy số xi tuần hoàn với

chu kỳ k<=m Toàn bộ chu kì m luôn có thể đạt được với a=c=1

Bên cạnh đó, sự lựa chọn các tham số a, c, m, xo rất quan trọng đối với chất lượng của

bộ sinh Nếu chúng không được chọn chính xác, bộ sinh có thể sẽ không có chu kỳ lớn

nhất, hay các số được sinh ra có thể không thể hiện tính ngẫu nhiên tốt hay thậm chí bộ

sinh có thể không thực hiện hiệu quả Đối với bộ số nhân lớn nhất là m-1 và nếu khi 0

xảy ra thì nó sẽ lặp lại không xác định

6 Thông thường, ta nên chọn m để làm cho toán tử modul có hiệu lực và sau đó chọn a

và c để làm cho chu kỳ càng dài càng tốt

7 Một chu kỳ đầy đủ (có độ dài m) có thể đạt được khi một số của điều kiện được thỏa

mãn như trong định lý sau

Định lý :

Một bộ sinh đệ quy có chu kỳ đầy đủ m khi và chỉ khi nó thỏa các điều kiện sau:

(i) USCLN (c, m) = 1 (nghĩa là c và m luôn có ước số chung bằng 1).

(ii) a  1 mod p đối với mỗi ước nguyên tố p của m (nghĩa là mỗi ước số chung

của m cũng là ước số chung của a-1 )

(iii) a  mod 4 nếu 4 chia hết cho m (nghĩa là, nếu m có bậc 4 thì 4 cũng là ước số

của a - 1)

Trang 15

Định nghĩa:

Nếu m là nguyên tố thì a là số nguyên thủy đầu tiên của modul m nếu và chỉ nếu an mod

m 1 với n=1, 2, 3, …, m-2

Chú ý:

1 Nếu m là số nguyên tố thì chu kỳ đủ đạt được chỉ khi a = 1

2 Ngay cả khi bộ sinh là chu kỳ đầy đủ vẫn không chắc chắn rằng các số được tạo ra là

số ngẫu nhiên Chẳng hạn, nếu a = 1, m = 1 và c = 3 thì các điều kiện trên đều thỏa

mãn, nhưng với x0 = 0 toàn bộ dãy số được tạo ra là 4, 7, 10, 2, 5, 8, 0, 3, 6, 9, 1, 4,

7, chúng hầu như không phải là số ngẫu nhiên

3 Việc lựa chọn hằng số nhân a ảnh hưởng đến độ lớn của chu kỳ và tính ngẫu nhiên của

chuỗi được sinh ra

4 Khi m= 2n và c>0: chu kỳ tối đa là m có thể đạt được khi và chỉ khi a mod 4  1 và c

là số lẻ (thường được chọn bằng 1) Ví dụ, xét bộ sinh LCG (a, 1, 16, x0): chu kỳ tối đa

là 16 có thể đạt được nếu và chỉ nếu a=1, 5, 9 hay 13 Khi a=3, hay 11 thì chu kỳ là 8;

khi a=7 thì chu kỳ là 4; và khi a=5 thì chu kỳ là 2 Chẳng hạn chuỗi các số nguyên giả

ngẫu nhiên sinh ra với LCG(5,1,16,1) là 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5, 10, 3,

0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14,

5 Khi m=2n và c=0: chu kỳ tối đa là m/4 đạt được nếu và chỉ nếu a mod 8 1 hay a mod

8 5 (thường được chọn) và giá trị khởi đầu là số lẻ Ví dụ, với bộ sinh LCG(a, 0, 16,

x0), chu kỳ tối đa là 4 đạt được nếu và chỉ nếu a=3, 5, 11 hay 13

6 Khi m là số nguyên tố và a>1 (không quan tâm đến c = 0 hay không): chu kỳ tối đa là

m-1 đạt được khi và chỉ khi a là số nguyên thủy đầu tiên của modul m

Như vậy, tham số quan trọng nhất của một LCG là modul m Kích thước của nó

ràng buộc chu kỳ (m thường được chọn là số nguyên tố hoặc là lũy thừa của 2) Đối với

các bộ sinh đồng dư tuyến tính với modul là số nguyên tố, việc sử dụng gia số c≠0 không

tăng chu kỳ ngoại trừ khi a = 1 Thông thường, a phải lớn hơn 1 để chuỗi sinh ra có tính

ngẫu nhiên

Ví dụ 1:

Xét bộ sinh LCG (a, 0, 13, 1), xét về tính ngẫu nhiên của chuỗi được sinh ra, a=6

hoặc a=11 tốt hơn a=2 hay a=7 mặc dù chúng sinh ra chu kì đầy đủ Người ta thường

mong muốn các bộ sinh có chu kỳ đầy đủ hơn là các bộ sinh có chu kỳ ngắn

Trang 16

Các giá trị khởi đầu giữa 1 và 12 không ảnh hưởng đến tính ngẫu nhiên của chuỗi

mà chỉ chuyển điểm khởi đầu của chuỗi Tuy nhiên nếu bộ sinh không phải có chu kỳ đầy

đủ thì các giá trị khởi đầu khác nhau sẽ sinh ra các chuỗi kết quả khác nhau với các chu

kỳ khác nhau

Ví dụ 2:

Nếu một LCG không phải là bộ sinh chu kỳ đầy đủ, thì các giá trị khởi đầu xo có

thể cho ra các chuỗi khác nhau và độ dài chu kỳ khác nhau Chẳng hạn với LCG(3, 0, 16,

Ngày đăng: 19/06/2023, 09:29

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w