Last edited Sat Dec 28, 2013, 10:42 AM - Edit history (1)

While I have understood the basics of QC for some time I'm still trying to work out how I would read out my QC.

So here's the problem (I'm typing this so that I can organize my own thoughts actually. Read if you are interested.):

1. You wish decrypt an encryption scheme which consists of giving the product of two prime numbers. The person performing the encryption has produced the encryption by multiplying two large primes (N-bits) and then broadcasts the result as their "public key (2N bits.)" The person encrypting then encrypts the message using one of the two primes. They also communicate the other of the two primes to the end user as the "private key." Thus the end user can decrypt the encryption by simple division. My QC is designed to break this encryption and discover the two primes.

2. My QC consists of a machine which can perform the Boolean multiplication of these two primes (each N-Qbits long with quantum coherence carefully maintained throughout the operation). The multiplication results in a single number which is 2N-Qbits long. I must be very careful not to read or interfere with any of these Qbits as that we result in decoherence which would be lose of the computation.

3. In order to read out my QC I must measure the end result so that it exactly is the public key (2N-bits long.) Then the "answer" is waiting patiently for me in the input registers and all I have to do is read out the values which are now no longer Qbits but have become 1's or 0's. This is the tricky part as I don't know how to actually do this - even in theory. I have two schemes which might work. In the first I simply remeasure each bit until it is the value I want. In the other I simply define each bit to be 1 or 0 depending on what I read. It seems to me that both of these readout schemes have difficulties. In the first I don't know how long I will have to wait to get the readout I want and if I do it one Qbit at a time but does that cause decoherence upstream of the bits I've already read? In the 2nd scheme it seems that though I can define 1 or 0 anyway that I choose that leaves me unsure of how to define these at the input points. ... anyway this is where I'm stuck. Maybe scheme 1 works fine and if I read out the Qbits one by one waiting until I get the answer then once I've read all 2N-Qbits this way I'm done and have the answers sitting warmly in the input registers each N bits long. Or have I lost my coherence along the way?