青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Creative Commons License
本Blog采用 知識共享署名-非商業(yè)性使用-禁止演繹 3.0 Unported許可協(xié)議 進行許可。 —— Fox <游戲人生>

游戲人生

游戲人生 != ( 人生 == 游戲 )
站點遷移至:http://www.yulefox.com。請訂閱本博的朋友將RSS修改為http://feeds.feedburner.com/yulefox
posts - 62, comments - 508, trackbacks - 0, articles - 7

Author: Fox

一、隨機數(shù)

軟件實現(xiàn)的隨機數(shù)生成器(random number generator, RNG)生成的隨機數(shù)列大多是惟定數(shù)列,因此一般被稱作偽隨機數(shù)(pseudorandom number, PRN),而基于熱噪聲(thermal noise)光電效應(photoelectric effect)放射性衰變(radioactive disintegration)等不可預知的物理現(xiàn)象實現(xiàn)的硬件隨機數(shù)生成器(hardware random number generator)生成的隨機數(shù)才被認為是真隨機數(shù)(truly random number)。PRN在計算機領域主要用于仿真(simulation)和密碼學(cryptography)。

本文僅討論偽隨機數(shù)軟件實現(xiàn)算法,并且僅討論滿足均勻分布(uniform distribution, UD)的偽隨機數(shù)發(fā)生器(pseudorandom number generator, PRNG)。非均勻分布(non-uniform distribution, NUD)的PRNG可通過滿足均勻分布的PRNG與非線性函數(shù)生成。

本文討論的PRNG應滿足以下三點:

a. 在取值空間內滿足UD,即等概率取得取值空間內任意值。

b. 充分隨機,即該隨機數(shù)列周期(period)應盡量長。此點由所謂的熵(entropy)度量。

c. 唯一輸入或稱種子(seed)對應唯一輸出PRN。這一點ms是計算機的強項,也是PRN惟定的根源,也是算法被破解的根源。

由于PRN sequence(PRNS)惟定,所以算法的安全性主要取決于熵的選擇和算法的復雜性

二、可預測PRNG與不可預測PRNG

所謂可預測(determined)PRNG,也被稱為統(tǒng)計意義上的PRNG(statistic PRNG),一般只有一個seed,而對于同一個seed,生成的PRNS是惟定的。

不可預測(indetermined)PRNG,從理論上講,不可預測的PRNG是不存在的,這兒指密碼學安全的PRNG(cryptographically secure PRNG, CSPRNG)。

三、常用PRNGs

1、線性同余發(fā)生器(linear congruential generators, LCG)

單博偉標準庫rand()函數(shù)的缺陷以及Blitz++隨機數(shù)生成的簡介中給出了The C Programming Langurage 2nd的實現(xiàn),我手頭沒有這本書,所以無從查證,FallHunter應該還有吧。

?1 unsigned? int ?next? = ? 1 ;
?2
?3 /* ?rand:?return?pseudo-random?integer?on?0..32767? */
?4 int ?rand( void )
?5 {
?6 ?next? = ?next? * ? 1103515245 ? + ? 12345 ;
?7 ? return ?(unsigned? int )(next / 65536 )? % ? 32768 ;
?8 }

?9
10 /* ?srand:?set?seed?for?rand()? */
11 void ?srand(unsigned? int ?seed)
12 {
13 ?next? = ?seed;
14 }

VS2003中給的實現(xiàn)是:

?1 /* **
?2 *rand.c?-?random?number?generator
?3 *
?4 *???????Copyright?(c)?Microsoft?Corporation.?All?rights?reserved.
?5 *
?6 *Purpose:
?7 *???????defines?rand(),?srand()?-?random?number?generator
?8 *
?9 ****************************************************************************** */

10
11 #include? < cruntime.h >
12 #include? < mtdll.h >
13 #include? < stddef.h >
14 #include? < stdlib.h >
15
16 #ifndef?_MT
17 static ? long ?holdrand? = ? 1L ;
18 #endif ??/*?_MT?*/
19
20 /* **
21 *void?srand(seed)?-?seed?the?random?number?generator
22 *
23 *Purpose:
24 *???????Seeds?the?random?number?generator?with?the?int?given.??Adapted?from?the
25 *???????BASIC?random?number?generator.
26 *
27 *Entry:
28 *???????unsigned?seed?-?seed?to?seed?rand?#?generator?with
29 *
30 *Exit:
31 *???????None.
32 *
33 *Exceptions:
34 *
35 ****************************************************************************** */

36
37 void ?__cdecl?srand?(
38 ????????unsigned? int ?seed
39 ????????)
40 {
41 #ifdef?_MT
42
43 ????????_getptd() -> _holdrand? = ?(unsigned? long )seed;
44
45 #else ??/*?_MT?*/
46 ????????holdrand? = ?( long )seed;
47 #endif ??/*?_MT?*/
48 }

49
50
51 /* **
52 *int?rand()?-?returns?a?random?number
53 *
54 *Purpose:
55 *???????returns?a?pseudo-random?number?0?through?32767.
56 *
57 *Entry:
58 *???????None.
59 *
60 *Exit:
61 *???????Returns?a?pseudo-random?number?0?through?32767.
62 *
63 *Exceptions:
64 *
65 ****************************************************************************** */

66
67 int ?__cdecl?rand?(
68 ???????? void
69 ????????)
70 {
71 #ifdef?_MT
72
73 ????????_ptiddata?ptd? = ?_getptd();
74
75 ???????? return (?((ptd -> _holdrand? = ?ptd -> _holdrand? * ? 214013L
76 ???????????? + ? 2531011L )? >> ? 16 )? & ? 0x7fff ?);
77
78 #else ??/*?_MT?*/
79 ???????? return (((holdrand? = ?holdrand? * ? 214013L ? + ? 2531011L )? >> ? 16 )? & ? 0x7fff );
80 #endif ??/*?_MT?*/
81 }


2、LFG, LFSR等

限于篇幅,有興趣的TX可以參考后面的資料,主要是Wikipedia,上面給的算法還是非常詳細的,CSPRNGs包括Blum Blum Shub、Fortuna等。

如果出于安全性的考慮,PRNG的輸出不應直接作為種子。在《構建安全的軟件》一書中,作者認為“一個好的PRNG具有這樣的性質:給足夠的熵,即使攻擊者知道全部的算法細節(jié),還是不能猜出生成的數(shù)據(jù)流”。

三、PRNG的安全測試

FIPS-140標準包含了對RNs的測試規(guī)范。這個標準我也沒有去仔細看,所以沒法給出更多的信息。被提到的測試包有DIEHARD、pLab

四、隨機數(shù)在游戲中的應用

1、隨機數(shù)為游戲帶來更多的不確定性,不確定性產生可玩性

這個應該是所有游戲的根本了吧。游戲中玩家、怪物、NPC的很多屬性都是一個范圍,比如攻擊就有最小攻擊和最大攻擊,每次的實際攻擊傷害總在二者之間。

同樣的,玩家樂此不疲的一次次“洗裝備”、“碰運氣”。其他類推吧?。

2、游戲的AI更多的依賴于隨機數(shù)

如果怪物、NPC的AI一切盡在玩家的掌握中,游戲的樂趣就大大降低了,這一點在單機游戲中有著很好的體現(xiàn)。War3中,人機對戰(zhàn),電腦的戰(zhàn)術并不單一(但還是有規(guī)律可循,人類玩家尚且如此),這其中固然有多方面 的因素。但隨機數(shù)的功勞也不容抹殺。

3、隨機數(shù)減少數(shù)據(jù)存儲,一個種子可以代替一批數(shù)據(jù)

游戲中含有大量數(shù)據(jù),如果每一項都要存取,對時間和空間都是一個考驗。對于場景中隨機生成的怪物信息,如果給定一個相同的種子。呃,是不是要簡單一些呢?

五、相關內容

至于為什么PRNGs大多使用素數(shù),需要更多的數(shù)論知識,對密碼學有了解的TX應該能夠體會到安全和數(shù)論之間的緊密聯(lián)系。因為手頭沒有數(shù)論的書,所以不多加妄測了。到時寫論文的時候,再填充上吧。

六、參考文獻

1. 構建安全的軟件. [美]John Viega, Gary McGraw. 鐘向群, 王鵬 譯.? 北京. 清華大學出版社, 2003.

2. Pseudorandom number generator及相關鏈接. http://en.wikipedia.org/wiki/Pseudorandom_number_generator

3. PRNG - Pseudo-Random Number Generator. http://statmath.wu-wien.ac.at/prng/

-------------------------------------------------------------------------

PS01:手上的幾本書

從幾位TX那兒拿的幾本書,放在桌上大半年了,一直沒有怎么翻過。想想周末還給他們算了,于是就拿過來翻翻,立此存照,如果以后用到的話,再來查。

a. 《用TCP/IP進行網(wǎng)際互聯(lián)》Vol. III,主要是針對Linux/POSIX套接字的C/S架構實現(xiàn)。因為MMORPG的C/S架構多依賴于TCP,上面第8、10-16章的內容可以關注一下。

b. 《構建安全的軟件》,上面關于開源、閉源的口水(Chap. 4),關于緩沖區(qū)溢出(Chap. 7),關于隨機數(shù)(Chap. 10),關于數(shù)據(jù)庫安全(Chap. 14),關于客戶端安全(Chap. 15),都是值得一看的東西。

c. 《UNIX環(huán)境高級編程》,進程控制(Chap. 8)、線程控制(Chap. 12)、進程通信(Chap. 15, 17)、套接字(Chap. 16)、數(shù)據(jù)庫(Chap. 20)。

d. 《UNIX網(wǎng)絡編程》Vol.I,如果涉及到泛UNIX操作系統(tǒng)下網(wǎng)絡編程,可以當作參考書翻。

e. 《計算機安全原理》,加密(Chap. 5)、認證(Chap. 6)、協(xié)議安全(Chap. 7)、入侵檢測(Chap. 13)、惡意攻擊(Chap. 15)、災難恢復(Chap. 19)。

PS02:微軟宣布不會抬高收購Yahoo價格

消息來自Wall Street Journal,不過當天可是April Fool

PS03:關于Wikipedia

不是說Wikipedia被禁的嗎?很久沒有訪問過了,這么好的東西,被封了還是很遺憾的。

PS04:有問題

發(fā)現(xiàn)問題,找Google;解決問題,找Wikipedia

PS05:歡迎補充

-------------------------------------------------------------------------

Added on Apr.10th

今天從CodeProject上看到一篇文章Applied Crypto++: Pseudo Random Number Generators),作者Jeffrey Walton對密碼學和安全比較有研究。

Jeffrey Walton對Knuth的The Art of Computer Programming Vol.2中關于隨機數(shù)的部分作了概括。

這篇文章從一個工程師的角度給出了隨機數(shù)的應用和實現(xiàn),很具有參考性。

作者還從FIPS 140-2標準中引用了下面一段話:

Random Number Generators fall into one of two classes: deterministic and nondeterministic. A deterministic RNG consists of an algorithm that produces a sequence of bits from an initial value called a seed. A nondeterministic RNG produces output that is dependent on some unpredictable physical source that is outside human control.

這一段話很好的說明,依賴于算法的RNG所生成的隨機數(shù)列只可能是偽隨機數(shù),真隨機數(shù)依賴于不可預測的物理源

Feedback

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2008-04-03 08:44 by Kevin Lynx
說實話,被滿世界的術語蒙住了。沒看懂。
還以為你要講rand中那幾個數(shù)字為什么會被使用。

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇[未登錄]  回復  更多評論   

2008-04-03 08:49 by len
還有日本人加強的馬氏回轉法,周期長,性能效果蠻好的.還有些算法,可以參見boost中的random這部分

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2008-04-03 10:29 by 杜中偉
什么時候弄個真隨機數(shù)的軟件實現(xiàn)呢 ?

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2008-04-03 10:40 by Fox
@Kevin Lynx
Xn+1 = (a*Xn+b)mod c
a, b, c通常是素數(shù)(僅僅是通常),說白了,這樣一個線性同余函數(shù)其實就是所謂的Hash函數(shù),選值不是固定不變的,ms Knuth的編程藝術(Vol. 2?)中對a, b, c的選取原則有提供。

@len
馬氏回轉是比較快的了,只是不是密碼學安全的算法。

@杜中偉
沒有考慮過遺傳算法、模糊理論、神經(jīng)網(wǎng)絡能否提供真正隨機的實現(xiàn)。不過這個倒是可以考慮,個人感覺上面幾種即使實現(xiàn)起來,效率是個問題。

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2008-04-03 18:30 by 亨德列克
呃,今天大開眼界,一個srand() / rand() 居然能有這么多名堂,受教了

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2008-04-03 20:03 by chaosjimmy
術語有點多,有點玄乎了。程序員們經(jīng)常需要隨機數(shù)的時候隨便拿過來一個就用,這倒不是個好的習慣,因為有些環(huán)境里的隨機數(shù)發(fā)生器是不敢恭維的。最好懂一點其所以然。

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇[未登錄]  回復  更多評論   

2008-04-04 16:01 by fox
之所以保留諸多術語,是為了以后加到論文里方便,但仔細看的話,還是可以看得懂的,如果懂點數(shù)論知識的話,更好。

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇[未登錄]  回復  更多評論   

2008-04-07 00:35 by noname
@fox
是準備做反外掛系統(tǒng)嗎?
可以參考下SD的動態(tài)加解密,防脫機外掛很NB的說
飯兄對這個dynende很熟悉的,呵呵

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2008-04-07 20:32 by Kevin Lynx
gr說,灌水也可以得分。

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2008-04-07 20:32 by Kevin Lynx
gr說,灌水也可以得分 = =

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2008-04-07 20:33 by Kevin Lynx
gr說,灌水也可以得分。 = =#

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2008-04-07 20:38 by Kevin Lynx
= = 結果不可以得分

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇[未登錄]  回復  更多評論   

2008-04-07 21:13 by CppExplore
嘿嘿,可以得分滴。不過刷新分數(shù)有間隔的,并不是實時的。

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2008-05-22 19:06 by 游戲迷
隨機數(shù)為游戲帶來更多的不確定性,不確定性產生可玩性

這個應該是所有游戲的根本了吧。游戲中玩家、怪物、NPC的很多屬性都是一個范圍,比如攻擊就有最小攻擊和最大攻擊,每次的實際攻擊傷害總在二者之間。

同樣的,玩家樂此不疲的一次次“洗裝備”、“碰運氣”。其他類推吧

如何能破解隨機數(shù),比如幻想當中的隨機領悟技能,怎么能破解各個技能的代碼而且掌握其總的規(guī)律?

# re: 網(wǎng)絡游戲安全思考——偽隨機數(shù)篇  回復  更多評論   

2009-03-05 01:12 by
太多術語,
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲私拍自拍| 午夜精品国产精品大乳美女| 久久天天躁夜夜躁狠狠躁2022| 最新高清无码专区| 亚洲黄色性网站| 亚洲精品欧洲精品| 日韩一区二区精品葵司在线| 99国内精品久久| 久久精品三级| 国产精品九九久久久久久久| 国产精品第一区| 国外视频精品毛片| 亚洲特级片在线| 亚洲一区成人| 欧美一区亚洲一区| 99国产精品99久久久久久| 午夜精品福利一区二区三区av| 亚洲电影在线播放| 国产在线精品二区| 亚洲美女在线国产| 亚洲精品少妇30p| 亚洲欧美日韩另类| 亚洲精品免费一二三区| 欧美日本在线看| 中文精品视频一区二区在线观看| 最新亚洲一区| 国产精品视频精品视频| 久久久综合免费视频| 亚洲女与黑人做爰| 欧美第一黄色网| 日韩一区二区精品葵司在线| 国产伦精品一区二区三区免费| 欧美国产亚洲精品久久久8v| 亚洲午夜一级| 正在播放欧美一区| 亚洲综合日韩在线| 久久久天天操| 欧美日韩精品一区二区三区四区| 国产伦精品一区二区三区四区免费| 国产精品伦一区| 亚洲精品裸体| 久久网站免费| 中文一区字幕| 欧美日韩爆操| 亚洲美女毛片| 六月婷婷一区| 午夜日韩激情| 欧美精品一卡| 亚洲特色特黄| 伊大人香蕉综合8在线视| 亚洲乱码日产精品bd| 136国产福利精品导航| 欧美久久久久免费| 亚洲欧美日韩国产精品| 99www免费人成精品| 久久不见久久见免费视频1| 国产综合香蕉五月婷在线| 欧美一区免费| 欧美丰满高潮xxxx喷水动漫| 一区二区av| 欧美夫妇交换俱乐部在线观看| 欧美一级理论性理论a| 欧美成人激情视频| 亚洲综合国产| 国产精品乱码一区二区三区| 妖精视频成人观看www| 国产综合视频| 久久精品一区二区国产| 午夜欧美大尺度福利影院在线看 | 国产精品视频一二三| 国产欧美日韩综合一区在线播放 | 欧美日韩国产精品自在自线| 国产亚洲精品久久飘花| 久久er精品视频| 午夜视频在线观看一区| 国产精品美女xx| 欧美三日本三级少妇三99| 亚洲成人在线视频网站| 欧美自拍偷拍午夜视频| 欧美成人精品h版在线观看| 一本色道久久综合亚洲精品按摩| 亚洲国产高清在线| 国产精品久久久久一区二区三区| 久久精品免费电影| 国产精品专区第二| 亚洲亚洲精品在线观看| 中文国产一区| 欧美中文字幕第一页| 久久视频免费观看| 亚洲国产欧美在线人成| 亚洲天堂av在线免费| 亚洲免费视频观看| 99精品欧美一区二区三区综合在线 | 欧美黑人国产人伦爽爽爽| 亚洲精品久久7777| 亚洲第一福利在线观看| 欧美国产先锋| 国产精品视频不卡| 麻豆国产精品va在线观看不卡| 欧美www视频| 欧美在线视频一区二区| 久久精品国产成人| 亚洲午夜激情网页| 久久精品一区| 欧美激情第8页| 91久久精品国产91久久性色| 在线观看中文字幕亚洲| 久久天天狠狠| 亚洲日韩视频| 在线亚洲高清视频| 国产精品第2页| 午夜精品福利在线| 欧美 日韩 国产一区二区在线视频| 狠狠色丁香婷婷综合久久片| 久久视频国产精品免费视频在线| 欧美成人情趣视频| 亚洲区欧美区| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 亚洲一区二区久久| 亚洲三级色网| 亚洲国产一区二区a毛片| 欧美一区二区三区视频| 久久亚洲一区| 狠狠色综合一区二区| 久久精精品视频| 在线观看国产精品淫| 欧美成人精品一区二区| 久久免费视频观看| 国产精品一区二区男女羞羞无遮挡| 伊人激情综合| 99精品国产在热久久婷婷| 欧美一区1区三区3区公司| 久久久久久欧美| 欧美福利视频一区| 久久久久成人精品| 国产欧美不卡| 亚洲影视九九影院在线观看| 一本大道久久a久久精二百| 欧美一区二区黄色| 久久国产日本精品| 亚洲天堂成人| 亚洲午夜成aⅴ人片| 国产欧美一区二区三区另类精品| 亚洲在线一区二区| 亚洲伦伦在线| 亚洲精品一区二区三区婷婷月| 久久激情综合| 欧美一区影院| 久久精品亚洲精品| 欧美77777| 欧美大片在线观看| 亚洲国产视频一区二区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美a级大片| 亚洲乱码国产乱码精品精天堂 | 国产精品夜夜夜| 在线看日韩欧美| 亚洲综合日韩| 国产一区高清视频| 亚洲视频第一页| 久久er精品视频| 激情五月***国产精品| 99精品国产99久久久久久福利| 久久av在线| 欧美成人在线网站| av成人黄色| 国产日本亚洲高清| 久热这里只精品99re8久| 亚洲伦理在线| 久久午夜电影网| 一区二区三区 在线观看视| 国产精品综合av一区二区国产馆| 久久久久久夜| 国产主播一区| 日韩网站免费观看| 国产精品高清在线观看| 欧美在线影院| 亚洲精品视频一区二区三区| 欧美诱惑福利视频| 99精品国产一区二区青青牛奶| 国产区在线观看成人精品| 欧美大片一区| 久久国产色av| 亚洲视频在线观看一区| 亚洲大胆视频| 欧美在线二区| 中日韩男男gay无套| 怡红院精品视频| 国产精品亚洲视频| 欧美日韩国产成人精品| 久久久久久免费| 午夜精品福利一区二区蜜股av| 亚洲精品午夜精品| 欧美激情女人20p| 久久久久久国产精品mv| 性色av一区二区怡红| 亚洲图片自拍偷拍| 一区二区三区日韩欧美| 亚洲区第一页| 亚洲国内自拍|