前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于量子理论的真随机数产生器 (MATLAB版)

基于量子理论的真随机数产生器 (MATLAB版)

作者头像
巴山学长
发布2020-02-17 15:10:18
1K0
发布2020-02-17 15:10:18
举报
文章被收录于专栏:巴山学长巴山学长

随机数在各行各业都有着广泛地应用需求!离咱最近的应用就是咱公众号的抽奖,每次抽奖都需要随机选择。实际上这里的随机数选择并不是真正意义上的随机数,而是通过数学方法产生的一种循环周期极长且能通过随机数检验的伪随机数,从技术上来讲这种随机数是可以通过一个定方法进行破解的。

今天给大家介绍一种获取真随机数的方法,是由澳大利亚国立大学物理与工程研究学院安全量子通信组基于测量真空的量子涨落数据来实时生成的,全世界任何人都可以通过互联网来获取该课题组产生的真实随机数。

下面就一起来看看如何获取吧!

他们提供两种方式获取真实随机数,一是通过下载生成好的真随机数库,二是通过互联网直接访问官方服务器来实时获取,咱这里就只介绍第二种。

在访问ANU Quantum Random Numbers Server需要提供三个API参数:

(1) 数据类型 (Data type):数据类型必须为'uint8' (返回0-255之间的整数)、'uint16'(返回0-65535之间的整数)或'hex16'(返回00-ff之间的十六进制字符)。

(2) 数组长度 (Array length):要返回的数组长度,必须在1–1024之间。

(3) 块大小 (Block size)对于“ hex16”数据类型需要。设置每个块的长度,必须在1–1024之间。

API调用格式:

https://qrng.anu.edu.au/API/jsonI.php?length=[array length]&type=[data type]&size=[block size]

realRandomNum源程序

代码语言:javascript
复制
% 感谢关注matlab爱好者公众号

% 本程序作者:bashan
% 
% 开发者:Secure Quantum Communication group,The Australian National University
% API调用网站:https://qrng.anu.edu.au/API/jsonI.php?length=[array length]&type=[data type]&size=[block size]
%

clc;clear;
% 大小必须在1至1024之间
arrayLength = 3;
% 数据类型必须为 'uint8','uint16','hex16'
dataType = 'uint8';
% 只有数据类型为'hex16'时,blockSize参数才起作用
blockSize = 2;
web1 = 'http://qrng.anu.edu.au/API/jsonI.php?length=';
web2 = '&type=';
web3 = '&size=';
% 组合网址
qrngWeb = strcat(web1,num2str(arrayLength),...
                 web2,num2str(dataType),...
                 web3,num2str(blockSize));
% 使用webread访问ANU Quantum Random Numbers Server
randNum = webread(qrngWeb);
if randNum.success
   disp(['获取的真随机数为:',num2str(randNum.data')]) 
else
    disp('随机数获取失败!')
end

将以上代码块中的代码复制粘贴到matlab编辑器中保存运行即可获取基于量子测量的真随机数,当然前提是电脑必须联网,小伙伴可以根据自己的需要选择不同的数据类型和数据长度。经小编测试,所有的数据类型都能够正常运行,大家可以放心使用。从上面不难看出,生成的随机数值的范围是有限的,如果有小伙伴需要更大范围的数据,请直接在ANU Quantum Random Numbers Server联系安全量子通信组。


参考资料:

[1] http://qrng.anu.edu.au/index.php

[2] Appl. Phys. Lett. 98, 231103 (2011); https://doi.org/10.1063/1.3597793

[3] Phys. Rev. Applied 3, 054004 (2015); https://doi.org/10.1103/PhysRevApplied.3.054004

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档