{ "info": { "author": "Ozaner Hansha", "author_email": "ozanerhansha@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "

\n \n

\n\n-----------------\n\n**qRNG** is a python package that generates truly random numbers via quantum mechanics. It does this by using IBM's [**QISKit**](https://qiskit.org/) API to communicate with any one of their 3 publicly accessible quantum computers.\n\n### Installation\nYou can use the pip package manager to install the current release of qRNG (along with its dependencies):\n```\npip install qrng\n```\n\nUpgrading is as simple as:\n```\npip install qrng -U\n```\n\n### What is Random Number Generation?\nThere are a variety of applications that require a source of random data in order to work effectively (e.g. simulations and cryptography). To that end, we make use of random number generators (RNGs) to generate sequences of numbers that are, ideally, indistinguishable from random noise.\n\nThere are two types of RNGs: Pseudo-RNGs (PRNGs) and True RNGs (TRNGs). Pseudo-RNGs, while not truly and statistically random, are used in a variety of applications as their output is 'random enough' for many purposes.\n\nFor a True RNGs, however, an actual piece of hardware is required to measure some random process in the real world as no deterministic computer program could suffice. These devices vary from pieces of radioactive material connected via USB to apparatuses that measure atmospheric noise.\n\n### Why Quantum?\nModern physics has shown us that there are really only two types of events that can happen in the universe: the unitary transformation of a quantum system, and quantum wavefunction collapse (i.e. **measurement**). The former being a totally deterministic process and the latter being a random one.\n\nIndeed, all randomness in the universe (as far we know) is the result of the collapse of quantum systems upon measurement. In a sense, this is randomness in its purest form and the underlying source of it in any TRNG.\n\nThe point of this package then, besides it being a fun side project, is to cut out the middle man entirely, whether it be a radioactive isotope or the thermal noise in your PC, and simply measure an actual quantum system. For example, we can prepare the following state in a quantum computer:\n\n

\n \n

\n\nThere is a 50-50 chance of measuring the above state as a 0 or 1 and we can continually iterate this process for as many random bits as we require.\n\n### Practicality\nOf course, while the numbers generated from a quantum computer are amongst the most random, the practicality of connecting to one IBM's quantum computers for a large amount of said numbers is nonexistent. For most real world use cases that require such high-caliber random numbers, an off the shelf hardware RNG would suffice.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ozanerhansha/qRNG", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "qrng", "package_url": "https://pypi.org/project/qrng/", "platform": "", "project_url": "https://pypi.org/project/qrng/", "project_urls": { "Homepage": "https://github.com/ozanerhansha/qRNG" }, "release_url": "https://pypi.org/project/qrng/0.1.1.1/", "requires_dist": null, "requires_python": "", "summary": "A Quantum Random Number Generator using IBM's Qiskit", "version": "0.1.1.1" }, "last_serial": 4684875, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "657fa887bb1a8f18e2ce802f9b34c9ae", "sha256": "601c6c889812942ba91e27bd79dab1defbe51df88bada559c4b9c8f3ff4a9e9e" }, "downloads": -1, "filename": "qrng-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "657fa887bb1a8f18e2ce802f9b34c9ae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16571, "upload_time": "2019-01-11T09:51:57", "url": "https://files.pythonhosted.org/packages/61/36/d2779afda6a85e6f5eb25320f212a2f13e120613e43c8a44f52e1abf3bc3/qrng-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7a60b667daed9d2cc1da1e5fe3689aef", "sha256": "517fc04e074e64547674bf26c238b1a56442d056017da1b6fbaf18cb08df57ca" }, "downloads": -1, "filename": "qrng-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7a60b667daed9d2cc1da1e5fe3689aef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3940, "upload_time": "2019-01-11T09:52:00", "url": "https://files.pythonhosted.org/packages/3e/56/0914d7679e14dc9c5024e8286e873cb055c25cd5f876d52e2f0b14ea578b/qrng-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "2ebd90617a87d25e4a7e8001ce8c3894", "sha256": "cddfabd839de081cdea01dcbdccae4c82cf6c3c329ebc03e41d10db363c84de0" }, "downloads": -1, "filename": "qrng-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2ebd90617a87d25e4a7e8001ce8c3894", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16571, "upload_time": "2019-01-11T09:51:59", "url": "https://files.pythonhosted.org/packages/66/1f/c38155a143ce6a26676baa6ee9e8dddc781d18da874fad5f20d025f3cd0f/qrng-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "571333d6076a856e0d8407dd4fb84c6e", "sha256": "4108ce566da8843e9ce29c0cd385ff5724a133d3a22634681786dc654538637a" }, "downloads": -1, "filename": "qrng-0.1.1.tar.gz", "has_sig": false, "md5_digest": "571333d6076a856e0d8407dd4fb84c6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3932, "upload_time": "2019-01-11T09:52:01", "url": "https://files.pythonhosted.org/packages/22/53/2b828fcf17984f1aeb489db70043b48cec8b2ec691f9dfb1f47e40c88ae9/qrng-0.1.1.tar.gz" } ], "0.1.1.1": [ { "comment_text": "", "digests": { "md5": "81eb410610b8e1bbfeedf7f1a1ee24a2", "sha256": "215446b79e6025097fb0d6354f06a72c7086c56307eb7554a44100c0f1e43a33" }, "downloads": -1, "filename": "qrng-0.1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "81eb410610b8e1bbfeedf7f1a1ee24a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16435, "upload_time": "2019-01-11T10:40:40", "url": "https://files.pythonhosted.org/packages/6d/b9/279633f703bac8541c0a65e7b0adf3c5f5dcf2afc1cb359c23678c0eb396/qrng-0.1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "119d6c1a22e2f38a41893545f4db4da3", "sha256": "1975a285d6527a7af3d4f585b354cb49054e176dc97c378e74697e58fcec7554" }, "downloads": -1, "filename": "qrng-0.1.1.1.tar.gz", "has_sig": false, "md5_digest": "119d6c1a22e2f38a41893545f4db4da3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3902, "upload_time": "2019-01-11T10:40:42", "url": "https://files.pythonhosted.org/packages/3f/d4/aa78108ba0ed9f725e90bc1f5f4cff956425df839855b60c6236656f4162/qrng-0.1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "81eb410610b8e1bbfeedf7f1a1ee24a2", "sha256": "215446b79e6025097fb0d6354f06a72c7086c56307eb7554a44100c0f1e43a33" }, "downloads": -1, "filename": "qrng-0.1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "81eb410610b8e1bbfeedf7f1a1ee24a2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16435, "upload_time": "2019-01-11T10:40:40", "url": "https://files.pythonhosted.org/packages/6d/b9/279633f703bac8541c0a65e7b0adf3c5f5dcf2afc1cb359c23678c0eb396/qrng-0.1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "119d6c1a22e2f38a41893545f4db4da3", "sha256": "1975a285d6527a7af3d4f585b354cb49054e176dc97c378e74697e58fcec7554" }, "downloads": -1, "filename": "qrng-0.1.1.1.tar.gz", "has_sig": false, "md5_digest": "119d6c1a22e2f38a41893545f4db4da3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3902, "upload_time": "2019-01-11T10:40:42", "url": "https://files.pythonhosted.org/packages/3f/d4/aa78108ba0ed9f725e90bc1f5f4cff956425df839855b60c6236656f4162/qrng-0.1.1.1.tar.gz" } ] }