Số ngẫu nhiên do máy tính tạo ra có thực sự ngẫu nhiên?

supervisor_accountAdministrator visibility 5306 4/20/2017 9:16:37 AM

Nếu cần một sự lựa chọn ngẫu nhiên, thông thường người ta sẽ tung một đồng xu hay một con xúc xắc. Tuy nhiên đôi khi phần mềm máy tính cũng cần tới sự ngẫu nhiên, ví dụ như sắp xếp các bài hát ở chế độ Xáo trộn (Shuffle) bằng một ứng dụng nghe nhạc, hoặc khiến cho các sự kiện trong game xảy ra một cách ngẫu nhiên, hoặc quan trọng hơn, tạo ra các mật mã ngẫu nhiên để sử dụng cho mục đích bảo mật.

Nhưng khoan đã, “ngẫu nhiên” là gì?

01.Ngẫu nhiên có nghĩa là gì?

Sự ngẫu nhiên là một khái niệm thường bị hiểu lầm. Không giống như nhiều khái niệm toán học chính xác, sự ngẫu nhiên liên quan đến những khái niệm rất khó diễn tả và nắm bắt như “khả năng” và “xác suất” – đó là những khái niệm mà bộ não chúng ta không tiến hóa theo hướng giúp chúng ta thấu hiểu hoàn toàn. Trong thực tế, bộ não chúng ta có xu hướng tìm kiếm những mô hình và ý nghĩa trong bất cứ sự kiện gì ngay cả khi chúng không thật sự ở đó.

Một vấn đề nữa là khái niệm ngẫu nhiên có xu hướng mang nghĩa khác nhau đối với những người khác nhau. Với nhiều người, ngẫu nhiên là một cái gì đó cho thấy một cảm giác thiếu trật tự trong một dãy các biểu tượng hoặc các bước khiến cho chúng ta không thể tìm thấy một mô hình dễ hiểu hoặc một sự kết hợp có ý nghĩa. Nhưng những người khác, cụ thể là các nhà khoa học và toán học, thì định nghĩa của họ đơn giản hơn nhiều: sự ngẫu nhiên chỉ đơn thuần là sự thiếu khả năng dự đoán.

Định nghĩa ngẫu nhiên: Sự ngẫu nhiên là sự thiếu mô hình hoặc khả năng dự đoán trong các sự kiện.

Mặc dù bản thân một sự kiện ngẫu nhiên là không thể dự đoán được, nhưng tần suất các kết quả xảy ra trong một chuỗi gồm một số lượng lớn các sự kiện ngẫu nhiên thì lại có thể tính toán được. Ví dụ khi gieo một đồng xu, chúng ta không thể biết được nó sẽ xuất hiện mặt sấp hay mặt ngửa, nhưng chúng ta hoàn toàn có thể biết được với số lượng lớn các lần gieo đồng xu, tỉ lệ giữa mặt sấp và mặt ngửa rất gần với tỉ lệ 1:1. Hoặc khi chúng ta ném 2 con xúc xắc cùng lúc, không ai biết được tổng số điểm của chúng sẽ là bao nhiêu nhưng có một điều chắc chắn là xác suất tổng điểm bằng 7 sẽ gấp đôi xác suất tổng điểm bằng 4.

Khái niệm về “ngẫu nhiên” đã xuất hiện từ rất lâu trong các nền văn minh nhân loại. Trong lịch sử cổ đại, các khái niệm về cơ hội và tính ngẫu nhiên có liên kết chặt chẽ với số phận. Nhiều dân tộc cổ đại ném xúc xắc để xác định số phận, và sau này phát triển thành trò chơi may rủi. Hầu hết các nền văn hoá cổ xưa đều sử dụng nhiều phương pháp bói toán để cố gắng phá vỡ tính ngẫu nhiên và số phận.

Người Trung Quốc vào khoảng 3000 năm trước có lẽ là những người sớm nhất chính thức hóa xác suất và cơ hội. Các triết gia Hy Lạp cũng thảo luận về tính ngẫu nhiên của chiều dài, nhưng chỉ ở dạng không định lượng. Phải đến thế kỷ 16, các nhà toán học người Ý mới bắt đầu chính thức hóa xác suất liên quan đến các trò chơi cơ hội khác nhau. Việc phát minh ra tích phân đã có một tác động tích cực đến việc nghiên cứu chính thức về tính ngẫu nhiên.

Phần đầu của thế kỷ 20 đã chứng kiến ​​sự tăng trưởng nhanh chóng trong phân tích chính thức về tính ngẫu nhiên khi các phương pháp tiếp cận khác nhau về cơ sở tính toán xác suất đã được đưa ra. Từ giữa thế kỷ 20 đến nay, những ý tưởng của bộ môn Lý thuyết Thông tin Thuật toán (Algorithmic Information Theory) đã nêu ra những chiều kích mới vào lĩnh vực này thông qua khái niệm Ngẫu nhiên thuật toán (Algorithmic randomness).

Mặc dù sự ngẫu nhiên thường bị coi là trở ngại và gây phiền toái trong nhiều thế kỷ, nhưng từ thế kỷ 20, các nhà khoa học máy tính đã bắt đầu nhận ra rằng việc đưa khái niệm ngẫu nhiên vào tính toán có thể là một công cụ hiệu quả để thiết kế các thuật toán tốt hơn. Trong nhiều trường hợp, các thuật toán ngẫu nhiên như vậy thậm chí còn tốt hơn các thuật toán xác định tốt nhất.

Các nghiên cứu về ngẫu nhiên không chỉ được sử dụng nhiều trong toán học, vật lý và công nghệ thông tin mà còn có nhiều ứng dụng hữu ích trong sinh học, kinh tế, chính trị, khoa học xã hội. Hiện nay có rất nhiều lĩnh vực khoa học liên quan đến tính ngẫu nhiên, bao gồm: Cơ học thống kê, Lý thuyết hỗn hoạn, Lý thuyết thông tin, Cơ lượng tử, Mật mã học, Số liệu thống kê, Nhận dạng mẫu, Lý thuyết xác suất, Lý thuyết trò chơi… và nhiều ngành khác.

02.Những điều mà mọi người thường hiểu sai về ngẫu nhiên:

Ngộ nhận thứ nhất: cho rằng ngẫu nhiên tức là phải có phân phối đồng đều:

Khi thiết đặt máy nghe nhạc ở chế độ Xáo trộn, nhiều người có cảm giác rằng máy nghe nhạc của họ hình như yêu thích một thể loại nhạc hoặc một nghệ sĩ nào đó. Có lẽ bạn cũng đã từng cảm thấy như vậy. Bộ não của chúng ta không thể tránh khỏi việc chọn mẫu hoặc khuynh hướng trong các sự kiện ngẫu nhiên. Và quả thật, tôi cũng thường thấy mình đã nhân tính hóa chiếc iPod khi nó chơi một chuỗi bài hát rõ ràng có liên quan tới nhau.

Sở dĩ xảy ra hiện tượng như vậy bởi vì cảm giác của chúng ta về ngẫu nhiên khác với những gì là bản chất thật sự của ngẫu nhiên. Chúng ta đòi hỏi phải có sự phân bố đồng đều. Khi xáo trộn các bài hát bằng máy nghe nhạc, chúng ta mong muốn sự ngẫu nhiên phải phân bố các bài hát theo tỉ lệ như nhau đối với từng thể loại và từng nghệ sĩ. Và bởi vì máy nghe nhạc của chúng ta chơi các bài hát tương tự liên tiếp nhau, nó vi phạm mong muốn này của chúng ta.

Nhưng chơi các bài hát theo một cách hoàn hoản như chúng ta mong muốn không phải là sự ngẫu nhiên, trong thực tế nó là những gì ngược lại với ngẫu nhiên, nó là một sự cấu trúc cao.

Điều quan trọng là bạn phải có ý thức về xác suất. Nếu danh sách phát của bản chứa 75 bài nhạc Pop nhưng chỉ có 25 bài nhạc Rock, thì sự phát ngẫu nhiên sẽ đại diện cho tỉ lệ này. Bạn chỉ đơn giản là nghe số bài nhạc Pop nhiều gấp 3 lần số bài nhạc Rock, vì đó là cách ngẫu nhiên hoạt động. Bạn không thể mong đợi phân phối ngẫu nhiên sẽ cho bạn nghe hai thể loại nhạc đó với tỉ lệ ngang nhau.

Ngộ nhận thứ hai: cho rằng các lựa chọn trong chuỗi ngẫu nhiên không nên được lặp lại:

Khi nghe nhạc ở chế độ ngẫu nhiên, bạn không thích nghe lại bài hát vừa mới nghe. Chính vì thế một số máy nghe nhạc đã có thêm những chức năng nâng cao đối với chế độ Xáo trộn ngẫu nhiên. Nó cho phép bạn ưu tiên một số nghệ sĩ hoặc thể loại nhạc khi phát ở chế độ ngẫu nhiên, hoặc chế độ xóa bài hát đã được nghe ra khỏi danh sách phát ngẫu nhiên để nó không lặp lại. Nhưng chính hành vi như vậy đã làm cho sự ngẫu nhiên không còn tinh khiết ngẫu nhiên nữa.

Lấy một ví dụ dễ hiểu hơn là: Giả sử bạn rút lá Heo Cơ ra khỏi bộ bài 52 lá rồi vứt nó đi, lần sau bạn rút một lá khác, chắc chắn là bạn sẽ không thể nào rút được Heo Cơ nữa. Nhưng nếu sau khi rút lá Heo Cơ bạn nhét lại nó vào bộ bài rồi xáo bài, lần sau rút một lá bạn vẫn có khả năng rút lại chính lá Heo Cơ, dù mỗi lần rút bài đều là ngẫu nhiên.

Ngộ nhận thứ ba: cho rằng tất cả mọi khả năng đều bình đẳng:

Sự ngẫu nhiên xảy ra, nhưng nó xảy ra trong một hệ thống bao trùm. Tuy nhiên, nhiều người thường giả định rằng: ngẫu nhiên tức là mọi khả năng xảy ra đều ngang nhau. Có nhiều người phản đối Lý thuyết về Chọn lọc tự nhiên của Darwin với lý lẽ rằng có quá nhiều thiết kế rõ ràng trong quá trình tiến hóa nên ngẫu nhiên không thể là một nguyên tắc chủ đạo, chắc chắn phải có một người quan sát thần thánh để chỉ đạo quá trình này.

Tuy nhiên những gì mà đám đông phản đối Thuyết tiến hóa của Darwin đã không nhận ra là: sự tiến hóa đã xảy ra theo những quy tắc và hạn chế rất cụ thể. Các yếu tố của tiến hóa bao gồm: đột biến, di truyền và chọn lọc tự nhiên. Trong khi đột biến thực sự là sự ngẫu nhiên của các lỗi sao chép trong quá trình sinh sản của sinh vật, nhưng có một yếu tố khác hoàn toàn không ngẫu nhiên đó là chọn lọc tự nhiên. Chỉ vì một đột biến xảy ra không có nghĩa là nó được ưa chuộng bởi môi trường. Và trên thực tế, hầu hết các đột biến gây hại cho sinh vật.

Nhà sinh vật học Kathryn Applegate đã có một cách giải thích dễ hiểu cho vấn đề này:

"Đôi khi, từ “ngẫu nhiên” được sử dụng để biểu thị ý nghĩa “không thiên vị”. Nếu bạn muốn dự đoán ai sẽ giành chiến thắng trong một cuộc bầu cử chính trị, bạn hãy chắc chắn rằng minh thăm dò một mẫu ngẫu nhiên của tất cả mọi người, chứ không chỉ những người đang tham gia cuộc biểu tình của một Đảng nào đó. Nhưng ngẫu nhiên cũng không có nghĩa là tất cả các khả năng đều như nhau. Khi nhiễm sắc thể của người cha và người mẹ gặp nhau trong quá trình thụ thai, chúng trao đổi chuỗi DNA trong một quá trình gọi là tái tổ hợp. Bây giờ chúng ta biết rằng sự tái tổ hợp diễn ra ở một số nơi của hệ gene nhiều hơn so với những nơi khác, tuy nhiên những nơi cụ thể mà nó sẽ xuất hiện trong phôi thai sẽ không thể dự đoán được. Vì vậy, sự kết hợp ngẫu nhiên theo nghĩa nó không thể dự đoán trước, nhưng không theo nghĩa tất cả các khả năng đều như nhau."
03.Máy tính có thể thật sự tạo ra số ngẫu nhiên hay không?

Với sự ra đời của máy tính, các lập trình viên nhận ra sự cần thiết của một phương tiện để đưa sự ngẫu nhiên vào một chương trình máy tính. Tuy nhiên, đó là một công việc rất khó để có được một máy tính làm điều gì đó một cách tình cờ. Máy tính thực hiện theo hướng dẫn của nó một cách mù quáng và do đó hoàn toàn có thể dự đoán được. Có hai cách tiếp cận chính để tạo ra các số ngẫu nhiên bằng cách sử dụng máy tính: Trình tạo số ngẫu nhiên giả (PRNGs) và Trình tạo số ngẫu nhiên thực (TRNGs). Các phương pháp tiếp cận có đặc điểm khá khác nhau và từng có những ưu và khuyết điểm của riêng nó.

Theo ý nghĩa tinh khiết nhất, máy tính không thể tạo ra các số ngẫu nhiên thực sự. Chúng chỉ có thể tạo ra các số giả ngẫu nhiên dựa trên một thuật toán được lập trình.

Tuy không thể tự mình tạo ra được số ngẫu nhiên, máy tính vẫn có thể đo lường các sự kiện vật lý ngẫu nhiên, từ đó gián tiếp tạo ra các số ngẫu nhiên thật sự.

Mặc dù chúng ta không chắc chắn có thứ gì trong vũ trụ là thực sự ngẫu nhiên hay không, các nhà khoa học đồng ý với nhau rằng các biến động ở cấp độ vi mô (ví dụ như sự chuyển động của hạt quark, sự phân rã phóng xạ hạt nhân, hay tiếng ồn của nguyên tử…) xảy ra một cách ngẫu nhiên.

Như vậy có 2 loại số ngẫu nhiên:

- Số ngẫu nhiên giả (PRN) do máy tính tự mình tạo ra bằng thuật toán.

- Số ngẫu nhiên thật (TRN) do máy tính đo lường các sự kiện vật lý ngẫu nhiên bên ngoài.

04.Số ngẫu nhiên giả và số ngẫu nhiên thật khác nhau như thế nào?

Số ngẫu nhiên giả: Đúng như ý nghĩa của từ “giả”, số ngẫu nhiên giả không phải là ngẫu nhiên theo cách mà bạn mong đợi, ít nhất nó sẽ không giống như khi bạn thảy xúc xắc hoặc mua một tờ vé số. Về cơ bản, Trình tạo số ngẫu nhiên giả (PRNGs) là các thuật toán sử dụng các công thức toán học hoặc các bảng tính cho trước để tạo ra trình tự các con số ngẫu nhiên. Một ví dụ điển hình của PRNGs là phương pháp đồng dư tuyến tính (linear congruential method). Rất nhiều nghiên cứu về việc tạo ra các số giả ngẫu nhiên đã được tiến hành trong nhiều năm qua, và các thuật toán hiện đại ngày nay đã có thể tạo ra các số giả ngẫu nhiên tốt đến mức chúng gần như các số ngẫu nhiên thật.

PRNGs thường là định kỳ, có nghĩa là các chuỗi số ngẫu nhiên giả sẽ lặp lại. Bởi vì sự tuần hoàn không phải là một đặc tính mong muốn, PRNGs được thiết kế dài đến mức tính tuần hoàn của nó có thể bị bỏ qua trong hầu hết các ứng dụng.

Việc số giả ngẫu nhiên có tốt hay không còn phụ thuộc vào nhu cầu ứng dụng của bạn. Nếu bạn đang chơi một trò chơi điện tử, dù các sự kiện trong trò chơi đó được thiết lập theo số ngẫu nhiên thật hay số ngẫu nhiên giả thì nó hoàn toàn không quan trọng. Tuy nhiên, nếu bạn đang cần mã hóa cho mục đích bảo mật, bạn sẽ không muốn sử dụng các số giả ngẫu nhiên mà bọn tin tặc có thể dễ dàng đoán được.

Số ngẫu nhiên thực: được tạo ra bởi Trình tạo số ngẫu nhiên thực (TRNGs). So với PRNGs, TRNGs trích xuất ngẫu nhiên từ hiện tượng vật lý và đưa nó vào máy tính. Để cho dễ hình dung, bạn có thể tưởng tượng người ta kết nối một viên xúc xắc với một máy tính. Tất nhiên trong thực tế, chẳng ai đi dùng viên xúc xắc, người ta thường kết nối máy tính với các sự kiện vật lý ngẫu nhiên xảy ra bên ngoài.

Hiện tượng vật lý có thể rất đơn giản, giống như các biến thể nhỏ trong chuyển động chuột của một người nào đó hoặc trong khoảng thời gian giữa các lần nhấn phím. Trong thực tế, tuy nhiên, bạn phải cẩn thận về nguồn mà bạn chọn. Ví dụ, công việc có thể rất phức tạp khi sử dụng tổ hợp phím theo cách này, bởi vì các phím bấm thường được đệm bởi hệ điều hành của máy tính, có nghĩa là một vài phím bấm được thu thập trước khi chúng được gửi đến chương trình đang chờ chúng.

Tuy nhiên, có nhiều cách khác để thu được sự ngẫu nhiên thực sự vào máy tính của bạn. Một hiện tượng vật lý thực sự tốt để sử dụng là một nguồn phóng xạ. Các điểm trong thời gian mà nguồn phóng xạ bị phân rã hoàn toàn không thể đoán trước và chúng có thể được phát hiện và đưa vào máy tính một cách dễ dàng, tránh các cơ chế đệm trong hệ điều hành. Các dịch vụ HotBits tại Fourmilab ở Thụy Sĩ là một ví dụ tuyệt vời của một bộ tạo số ngẫu nhiên có sử dụng kỹ thuật này. Một hiện tượng vật lý phù hợp khác là tiếng ồn trong không khí, mà là khá dễ dàng để nhận diện. Đây là cách tiếp cận được sử dụng bởi trang web quay số ngẫu nhiên Random.org. Tất cả các hiện tượng vật lý ngẫu nhiên này sẽ được sử dụng như hạt giống (seeds) để giúp các máy tính tạo ra chuỗi số ngẫu nhiên.

Và ngay cả các số ngẫu nhiên thật cũng không phải là hoàn toàn ngẫu nhiên theo nghĩa tinh khiết nhất của từ này. Tại sao? Bởi vì máy tạo số ngẫu nhiên thật chỉ thu thập hạt giống ngẫu nhiên từ môi trường, sau đó vẫn phải xử lý lại bằng thuật toán bởi vì chúng ta mong muốn các số ngẫu nhiên phải tuân theo một số tiêu chuẩn nhất định, ví dụ như không lặp lại hoặc nằm trong một giới hạn nào đó.

Sau đây chúng ta sẽ so sánh một số điểm khác biệt giữa 2 loại số ngẫu nhiên này qua bảng sau:

Như đã thấy, các số ngẫu nhiên giả tuy có hiệu quả kinh tế cao hơn, dễ thực hiện hơn nhưng ứng dụng lại hạn hẹp. Trong khi đó các số ngẫu nhiên thật khó tạo ra hơn, chi phí cao hơn nhưng được ứng dụng rộng rãi trong nhiều lĩnh vực quan trọng như bảo mật, nghiên cứu khoa học, xổ số, mã hóa dữ liệu…

05.NSA và Bộ tạo số ngẫu nhiên của Intel:

Để làm cho mọi thứ trở nên dễ dàng hơn cho các nhà phát triển và giúp tạo ra các số ngẫu nhiên an toàn, các chip Intel bao gồm bộ tạo số ngẫu nhiên dựa trên phần cứng được biết đến như RdRand. Chip này sử dụng một nguồn entropy trên bộ vi xử lý và cung cấp số ngẫu nhiên cho phần mềm khi phần mềm yêu cầu chúng.

Vấn đề ở đây là máy phát số ngẫu nhiên là một hộp màu đen và chúng ta không biết điều gì đang xảy ra bên trong nó. Nếu RdRand chứa backdoor của NSA, chính phủ Hoa Kỳ sẽ có thể phá vỡ các khoá mã hóa được tạo ra chỉ với dữ liệu được cung cấp bởi máy phát số ngẫu nhiên đó.

Đây là một mối quan tâm nghiêm trọng. Vào tháng 12 năm 2013, các nhà phát triển của FreeBSD đã loại bỏ sự hỗ trợ cho việc sử dụng RdRand trực tiếp làm nguồn ngẫu nhiên và nói rằng họ không thể tin tưởng vào nó. Đầu ra của thiết bị RdRand sẽ được đưa vào một thuật toán khác thêm vào entropy bổ sung, đảm bảo rằng bất kỳ backdoor nào trong bộ tạo số ngẫu nhiên sẽ không thành vấn đề. Linux đã làm việc theo cách này, tiếp tục ngẫu nhiên hóa các dữ liệu ngẫu nhiên đến từ RdRand để nó sẽ không thể dự đoán được ngay cả khi có một backdoor.

Cuộc tranh cãi này cho thấy tại sao việc tạo ra những con số ngẫu nhiên thực sự ngẫu nhiên và không dự đoán được là rất quan trọng.

BÀI ĐANG HOT

Cuộc sống của một “gia đình đông chó” trông sẽ như thế nào?

02/04/2017

Voi châu Phi “không thèm” mọc ngà để tránh nạn tuyệt chủng

13/01/2017

Những mẩu truyện tranh hài hước về chú rồng Pikagon (Pikalong)

11/03/2017

Mẹo hay cải thiện nhanh chóng hiệu suất làm việc của bạn chỉ với một giấc ngủ trưa ngắn

11/02/2017

Cảnh báo: Tác hại từ việc trị mụn bằng kem đánh răng!

10/12/2016

Đam mê là nhảm nhí và mục tiêu chỉ dành cho những kẻ thua cuộc

16/01/2017

100 ý tưởng khởi nghiệp kinh doanh nhỏ ít vốn cho người mới bắt đầu

06/12/2016

Những mẩu truyện tranh hài hước về chú thỏ 7 màu

28/03/2017

7 cách phối màu êm dịu để có được một phòng ngủ thư giãn và ấm áp

15/12/2016

Số ngẫu nhiên do máy tính tạo ra có thực sự ngẫu nhiên?

20/04/2017

10 mẫu xe độ Super Cub đẹp đến ngỡ ngàng!

30/12/2016

4 phong cách thời trang “không bao giờ lỗi mốt” mà bạn không thể bỏ qua

22/11/2016

Làm thế nào để viết một cuốn sách trong thời gian rảnh của bạn

10/02/2017

Người họa sĩ này đã vẽ những bé thú cưng dựa theo lời mô tả của chủ nhân chúng

14/01/2017

Ở đời có 4 cái ngu – Vì sao ngu? Ngu như thế nào?

02/12/2016

Tôi tập trung, tôi tồn tại - Bí mật của sự tập trung cao độ

20/08/2017

20 người làm thay đổi thế giới mà bạn chưa từng nghe nói đến

12/12/2017

Cách xác định loại da và quy trình chăm sóc da từng bước hiệu quả nhất

06/08/2017

12 điều tuyệt vời về iPhone 7 - bạn đã biết chưa?

29/10/2016

20 Ý tưởng mở quán cà phê cho người khởi nghiệp kinh doanh nhỏ

06/12/2016

Sai lầm rất nhiều người thường mắc phải khi sử dụng kem chống nắng

09/08/2017

6 điều ai cũng muốn chia sẻ trên mạng xã hội nhưng chẳng ai thèm đọc

17/08/2017

8 điều kỳ diệu về loài nhện

18/10/2016

3 loại tiền đời người nhất định phải tiêu, tiêu càng nhiều sẽ kiếm lại càng nhiều hơn!

12/05/2018

5 kiểu chết phổ biến trong phim ảnh hóa ra lại sai về mặt khoa học

29/04/2017

Những câu nói hay về cuộc sống: Cùng đọc và chiêm nghiệm

19/02/2017

7 lối suy nghĩ sai lầm khiến bạn trị sẹo lõm thất bại

23/05/2018

50 kỹ năng mềm bạn cần phải có để hạnh phúc và thành công trong cuộc sống

31/08/2017

Bí ẩn đằng sau logo của thương hiệu cà phê nổi tiếng thế giới Starbucks

29/10/2016

© Copyright 2016. Bản quyền website thuộc về 1tach.com