??????????????????д???????????λ????????????????????????????????鷳??????????????????????????????????????????????????????????????Linux ?????????????β????????????? KVM ????????????????????????????????????????????
?????????????
???????????????????????????????????????????? SSL ???Э???????????????????????????????????????????????????????
????1????????????????????????
????2????????????????????????????
?????????????????????ü????????????????????????е??о??????о????????????????????£???ü????????????????????????????????????????????????????????????????????????????????????????????????????“α?????”??pseudo-random number????α?????????????????????“?????”??α????????????????????????????????????????????????????д???????????
????1??α?????????????????????????????????????????
????2????????????????????????????????ó??????????????????
????3?????????????????2?????????????????????????е????????
?????????????????????????????????н????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????
?????????????????????е????????????????????????????????????Э????????????????????????????????????????????????????????????????????????????????????????????????????????о????????????????? Linux ??? PRNG——/dev/random ??/dev/urandom ?????????? Linux ??α?????????????????3?????????????????????????????????????????????????????λ??
????Linux ?????????β???
????PRNG(Pseudo-Random Number Generator)
????1994 ?????????????? Theodore Y. Ts’o ??????? Linux ?????????????????????????? SHA-1 ??????????????????????????
????Linux ????????????????????????????entropy???????????????????????????????????????????????????????????????????????????????????????????????????豸?????????????????????????????????????е????????????????????????????????????С???????????????????????????????????????????????????????????????????????????????????а??????????λ????????????????????????????á? ???????????????? PRNG ????????豸 random??????????? drivers/char/random.c?????豸????????н??????????????????????????????????????????????????????????豸?????ж???????????豸??????????????????????????????? ????????????

 

void add_device_randomness(const void *buf?? unsigned int size);
void add_input_randomness(unsigned int type?? unsigned int code??
unsigned int value);
void add_interrupt_randomness(int irq?? int irq_flags);
void add_disk_randomness(struct gendisk *disk);

??????????? 1 ??????????????????????á?
????void get_random_bytes(void *buf?? int nbytes);
?????y??????????????????????random ?豸?????? 2 ??????豸?????????????——/dev/random ??/dev/urandom??
????/dev/random ???????????????????????????????????????????? ??? dev/random ?豸?????С??????????????????????/dev/random ???????????????????????????????????????/dev/random ??????????????????????????????????????????????????????/dev/random ????????????????????????????????????????
????/dev/urandom?????????????????????????????????????е??????????α??????????????/dev/urandom ???????????????????????????????????С??/dev/random ??????????????????????????α??????????????????????????????????????????
????/dev/random ?????д???κ????????????????м??????????????д?????????????????????????й??????????? ioctl ??????????С??Linux ????е?????????С??????????? /proc/sys/kernel/random/????????磺

 

# cat /proc/sys/kernel/random/poolsize
4096
# cat /proc/sys/kernel/random/entropy_avail
298
# cat /proc/sys/kernel/random/uuid
4f0683ae-6141-41e1-b5b9-57f4bd299219