Editing
Randomness amplification (8 devices)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Randomness amplification is a protocol for [[Quantum Random Number Generator]] which takes a string from a weak source of randomness - one which contains correlations and may be at least somewhat predictable by an adversary - and converts it to a (potentially shorter) string which is (close to) uniformly random and private from any adversaries. The protocol of [https://www.nature.com/articles/ncomms11345 Brandao et al] allows for eight untrusted devices to be used in a noise-tolerant setting to amplify an arbitrarily weak [https://wiki.veriqloud.fr/index.php?title=Glossary Santha-Vazirani (SV) source]. Classically, it is only possible to extract uniform, private randomness by combining multiple weak sources together. This protocol enables the extraction of such randomness from only a single weak source - useful in any situation where only some randomness has been provided but absolute security is required. Tags: [[: Category: Building Blocks|Building Blocks]], [[: Category: Quantum Functionality|Quantum Functionality]], [[:Category: Specific Task|Specific Task]] [[Category: Building Blocks]] [[Category: Quantum Functionality]] [[Category: Specific Task]] [[Category:Entanglement Distribution Network stage]] ==Assumptions== * No-signalling theorem is correct * The measurement devices do not interact during measurements * The measurement devices are not correlated with the input string ==Outline== In this protocol, Alice has an initial string that has been produced by an SV source and therefore is not uniformly random. She has been provided with eight identical measurement devices by Eve, each of which has two settings and can produce two outputs. Classical [https://wiki.veriqloud.fr/index.php?title=Glossary randomness extractors] exist which are capable of combining three independent sources of weak randomness into a single (close to) uniform, private source. Alice's overarching goal is, therefore, to use her provided apparatus to simulate three independent sources using only her single initial string. First, Alice divides up the measurement devices into two groups of four. Then, she divides her input string into four portions, the required sizes of which will depend on her choice of randomness extractor and the confidence with which she would like the protocol to succeed (i.e. produce a string which is uniformly random and private). She also decides on a threshold for noise which she deems acceptable. Using the first portion of the string and the first group of four measurement devices, Alice performs a four-party analogue of a [https://wiki.veriqloud.fr/index.php?title=Glossary CHSH game]: taking four bits at a time from the string, she uses their values to choose measurement settings on the devices (i.e. if the bits taken are <math>0,1,0,1</math> then she sets device one to <math>0</math>, two to <math>1</math>, three to <math>0</math> and four to <math>1</math>). Then, she prepares a four-partite [https://wiki.veriqloud.fr/index.php?title=Glossary entangled state] across the devices and measures with each, storing the results she gets as a string of bits. Once the portion of string she started with has been exhausted, she looks at the correlation of her chosen inputs and results - if this value is within an accepted threshold (defined by her choice of noise) she continues, otherwise, the protocol is aborted. Taking two more portions of the string and the remaining four devices, and dividing one of these portions into a number of equally sized blocks, Alice repeats the measurement process as described above, using each block in turn. She stops before the correlation check and records her results each time. Using the other selected portion of the string as an index to her list of stored results, Alice chooses one of the blocks of inputs and recorded results, and passes this to the same correlation check. If this check does not abort, Alice passes the first string of measurement results, the randomly selected string of results and the remaining portion of the original string to a classical randomness extractor. The output of this is then returned as (close to) uniformly random, private (i.e. randomness amplified) string. * <math>n</math>: number of measurement iterations (per block) * <math>N</math>: number of blocks to repeat second set of measurements for * <math>x_{i,j}</math>: measurement setting for device <math>j</math> on iteration <math>i</math> * <math>a_{i,j}</math>: measurement result for device <math>j</math> on iteration <math>i</math> * <math>\textrm{bases}</math>: tuple of measurement bases for each device; \textrm{bases} = <math>\{X,Z\}</math> * <math>s</math>: string of measurement basis groups; <math>s=(x_{1,1},x_{1,2},x_{1,3},x_{1,4};\ldots;x_{n,1},x_{n,2},x_{n,3},x_{n,4})</math> * <math>r</math>: string of measurement result groups; <math>r=(a_{1,1},a_{1,2},a_{1,3},a_{1,4};\ldots;a_{n,1},a_{n,2},a_{n,3},a_{n,4})</math> * <math>S</math>: list of strings of measurement basis groups for blocks 1 to <math>N</math>; <math>S=(s_1\ldots s_N)</math> * <math>R</math>: list of strings of measurement result groups for blocks 1 to <math>N</math>; <math>R=(r_1\ldots r_N)</math> * <math>t</math>: initial weak random seed * <math>u</math>: final randomness amplified string * <math>|\phi_-\rangle, |\psi_+\rangle</math>: [https://wiki.veriqloud.fr/index.php?title=Glossary maximally entangled] two qubit Bell states * <math>|\tilde{\phi}_+\rangle</math>: two qubit entangled state; <math>|\tilde{\phi}_+\rangle=\frac{1}{\sqrt{2}}\big(|0\rangle|+\rangle+|1\rangle|-\rangle\big)</math> * <math>|\tilde{\psi}_-\rangle</math>: two qubit entangled state; <math>|\tilde{\psi}_-\rangle=\frac{1}{\sqrt{2}}\big(|0\rangle|-\rangle-|1\rangle|+\rangle\big)</math> * <math>|\Psi\rangle</math>: entangled state shared by measurement systems; <math>|\Psi\rangle=\frac{1}{\sqrt{2}}\big(|\phi^-\rangle|\tilde{\phi\rangle^+}+|\psi^+\rangle|\tilde{\psi}^-\rangle\big)</math> * <math>\delta</math>: chosen tolerated noise * <math>\hat{B}</math>: estimate of the bell inequality defined in [https://www.nature.com/articles/ncomms11345 Brandao et. al.] * <math>\mathbb{I_\textrm{cond}}</math>: indicator function taking value 1 if \textrm{cond} evaluates true and 0 otherwise * <math>D^{(1)}</math>: group of measurement devices containing devices 1 to 4 * <math>D^{(2)}</math>: group of measurement devices containing devices 5 to 8 * <math>\textrm{Ext}</math>: three-source randomness extractor ==Requirements== * '''Network stage''': [https://wiki.veriqloud.fr/index.php?title=Category:Entanglement_Distribution_Network_stage Entanglement Distribution] * Weak (SV) random number generator * Authenticated quantum channel * Authenticated classical channel * Hardware: ** Mutli qubit non-seperable state preparation ** Single qubit measurement ** Single qubit gate ==Properties== * Requires eight measurement devices * Devices can be untrusted * Noise tolerance is dependent on weakness of the source * Arbitrarily weak SV sources can be amplified in the absence of noise * Length of the amplified string depends on the choice of a randomness extractor ==Pseudocode== '''Input''': <math>t</math>, <math>\delta</math>, <math>N</math>, <math>\textrm{Ext}</math> '''Output''': <math>u</math> * split <math>t</math> into <math>t=(t^{(1)},t^{(2)},t^{(3)},t^{(4)})</math> where <math>|t^{(3)}|=\log{N}, |t^{(2)}|=N|t^{(1)}|</math> and <math>|t^{(1)}|,|t^{(4)}|</math> are determined by <math>\textrm{Ext}</math> * <math>n\leftarrow\big\lfloor\frac{|t^{(1)}|}{2}\big\rfloor</math> * initialise arrays <math>r</math>, <math>s</math> of length <math>n</math> * initialise (2D) arrays <math>R</math>, <math>S</math> of length <math>N</math> (with elements of length <math>n</math>) * <math>\textrm{measurementBlock}</math>(<math>D^{(1)}, t^{(1)}, n, s, r</math>) * <math>\hat{B}\leftarrow</math><math>\textrm{estimateBellViolation}</math><math>(n,s,r)</math> * If <math>\hat{B}>\delta</math>: ** <math>\textbf{abort}</math> * For <math>k\leftarrow1</math> to <math>N</math>: ** <math>\textrm{measurementBlock}</math>(<math>D^{(2)},t^{(2)}_{nk:n(k+1)},n,S[k],R[k]</math>) * <math>t^{(3)}\leftarrow</math> cast <math>t^{(3)}</math> as an integer * <math>\hat{B}\leftarrow\textrm{estimateBellViolation}(n,S[t^{(3)}],R[t^{(3)}])</math> * If <math>\hat{B}>\delta</math>: ** <math>\textbf{abort}</math> * <math>u\leftarrow\textrm{Ext}(r,R[t^{(3)}],t^{(4)}</math>) With the following subroutines defined: '''<math>\textrm{measurementBlock}</math>''' '''Input''': <math>D, t, n, s, r</math> * For <math>i\leftarrow1</math> to <math>n</math>: ** prepare state <math>|\Psi\rangle=\frac{1}{\sqrt{2}}\big(|\phi_-\rangle|\tilde{\phi}_+\rangle + |\psi_+\rangle|\tilde{\psi}_-\rangle\big)</math> and share across <math>D</math> ** <math>j\leftarrow1</math> to 4: *** <math>x_{i,j}\leftarrow t_{4i+j}</math> *** <math>a_{i,j}\leftarrow</math> measurement from device <math>j</math> in basis \textrm{bases}[<math>x_{i,j}</math>] ** <math>s[i]\leftarrow(x_{i,1},x_{i,2},x_{i,3},x_{i,4})</math> ** <math>r[i]\leftarrow(a_{i,1},a_{i,2},a_{i,3},a_{i,4})</math> '''<math>\textrm{estimateBellViolation}</math>''' '''Input''': <math>n, s, r</math> '''Output''': <math>\hat{B}</math> * <math>\hat{B}\leftarrow0</math> * For <math>i\leftarrow1</math> to <math>n</math>: ** <math>x_1,x_2,x_3,x_4\leftarrow s[i]</math> ** <math>a_1,a_2,a_3,a_4\leftarrow r[i]</math> ** <math>\hat{B}\leftarrow\hat{B}+\frac{1}{n}\big(\mathbb{I}_{\bigoplus_{j=1}^4x_j=0}\mathbb{I}_{\bigoplus_{a=1}^4u_j=1}+\mathbb{I}_{\bigoplus_{j=1}^4x_j=1}\mathbb{I}_{\bigoplus_{a=1}^4u_j=0}\big)</math> ==Further Information== [https://www.nature.com/articles/ncomms11345 Brandão et. al.] also provide a protocol that achieves randomness amplification using only four devices, however, the randomness extractor required to produce multiple bits is only defined implicitly (i.e. we can prove that it exists but have not yet been able to construct it). A randomness extractor does exist that is able to produce a single private bit. ==Further Information== ==References== <div style='text-align: right;'>''contributed by Neil Mcblane''</div>
Summary:
Please note that all contributions to Quantum Protocol Zoo may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Quantum Protocol Zoo:Copyrights
for details).
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
News
Protocol Library
Certification Library
Nodal Subroutines
Codes Repository
Knowledge Graphs
Submissions
Categories
Supplementary Information
Recent Changes
Contact us
Help
Tools
What links here
Related changes
Special pages
Page information