Bij quantum crypto ligt dat wel net even anders als bij meer "conventionele" crypto methodes. Het is niet zoals bijvoorbeeld RSA gebaseerd op een wiskundig verschijnsel zoals priemgetallen, die met toenemende rekenkracht steeds makkelijker te achterhalen zijn en dergelijke.
Hieronder een vereenvoudigd voorbeeld, zoals ik het jaren geleden een keer in een boek gelezen heb.
Het werkt met het versturen van enkele fotonen, die een bepaalde trillingsrichting hebben (polarisatie).
Je hebt verticaal (V), horizontaal (H), en twee varianten van diagonaal (zeg D1 en D2). En je hebt twee soorten filters, een + filter en een x filter.
Als je met een + filter een V opvangt dan geeft dat een 1, als je een H opvangt een 0.
Als je met een x filter een D1 opvangt geeft dat een 1, een D2 geeft een 0.
Als je echter met een + filter een D1 of D2 opvangt, dan geeft dat ook een 0, en met een x filter geven zowel V als H ook een 0. Je moet dus het juiste filter op het juiste moment gebruiken om te weten of er een 1 of een 0 verstuurd was.
Bij het opvangen van een foton gaat dat foton "verloren". Als je dus wilt onderscheppen zonder opgemerkt te worden, zul je de boodschap zelf opnieuw moeten versturen. Daarvoor moet je echter wel de juiste boodschap weten, anders kan je dat niet.
De sleutel in deze vorm van cryptografie is de volgorde waarin x en + filters gebruikt worden. Als je die volgorde niet weet en niet toevallig goed gokt onderschep je dus per definitie de verkeerde boodschap en als je die verkeerde boodschap doorstuurt dan kan de ontvanger dat ontdekken.
Waar het nu dus bij deze hack misgaat is dat in de huidige systemen er ook in een situatie zonder onderschepping fouten optreden. Daardoor zal een ontvanger een bepaalde hoeveelheid fouten moeten tolereren. Dat geeft de onderschepper dus de ruimte om foutjes te maken bij zijn pogingen om de volgorde van de filters te gokken.
Of het tegenwoordig echt met fotonen werkt of met andere deeltjes weet ik niet precies, maar de principes kloppen voor zover ik weet wel. Het gaat er om dat je enkele deeltjes verstuurt (dus geen hele reeks waar je makkelijk een deel van af kan luisteren) die een bepaalde toestand hebben, waarbij je die toestand alleen kan vaststellen met het juiste filter en het deeltje altijd verloren gaat bij het bekijken van de toestand.
Een theoretische kraak van QC systemen zou bestaan uit een manier om de toestand van een enkel deeltje te detecteren zonder dat deeltje te beïnvloeden, zodat je dus echt ongemerkt kan afluisteren. Nu heb ik daar verder geen verstand van, maar schijnbaar wordt dat nogal onmogelijk geacht.
Edit: Te zien aan
http://en.wikipedia.org/wiki/Quantum_cryptography klopte mijn eenvoudige schets wel aardig met het BB84 protocol waar dit nieuwsbericht over gaat

[Reactie gewijzigd door Orion84 op donderdag 20 mei 2010 11:09]
Een kleine opmerking:
Als je echter met een + filter een D1 of D2 opvangt, dan geeft dat ook een 0, en met een x filter geven zowel V als H ook een 0.
Een horizontaal of verticaal gepolariseerd foton kan wel door een diagonaal filter, maar met een kans van 50%. Je krijgt dus niet altijd een 0; 50% van de keren is het een 1.
En als aanvulling op je post:
De zender kiest per foton een willekeurige bit en een willekeurige basis (+ of x), en schrijft deze op. De ontvanger kiest per foton zelf welke basis hij gebruikt om 'm om te zetten in een 1 danwel 0. Na het verzenden van het bericht bellen ze elkaar op (bij wijze van spreken, iig hoeft dit communicatiekanaal niet secure te zijn), en discarden ze alle bits waarvan de gekozen basisen bij zender en ontvanger niet overeen komen. Nu ze van elkaar weten wat de uiteindelijke bitstring is, gaan ze een paar willekeurige bits verifieren. De reden waarom kom ik straks op terug.
Een mogelijke afluisteraar kan niet anders dan ook maar gewoon steeds willekeurig een basis kiezen, en vervolgens de telefoon aftappen om erachter te komen welke bits hij met de juiste basis heeft afgeluisterd. Echter, door het afluisteren verandert hij de staat van de foton. Het is per definitie onmogelijk om de gehele quantum staat van een deeltje te ontcijferen. Je kunt de richting van de polarisatie dus niet zien - je kunt hooguit een basis pakken en hopen dat het de juiste is, maar als het dat niet is dan kom je daar ook nooit achter. Een horizontaal gepolariseerd foton dat door een diagonaal filter is gegaan zal daarna een diagonale polarisatie hebben. Je kunt dus niet simpelweg nog een keer testen met een ander filter. De afluisteraar stuurt nieuwe fotonen naar de ontvanger, die dus mogelijk niet meer dezelfde polarisatie hebben als de fotonen die hij heeft ontvangen.
En daarom controleren de zender en de ontvanger een paar willekeurige bits, nadat ze van elkaar weten voor welke bits ze dezelfde basis hebben gebruikt. Een horizontaal gepolariseerd foton zal bij de ontvanger dus ook als horizontaal gepolariseerd aan moeten komen. Heeft de afluiteraar echter een diagonale basis gebruikt, dan zal de foton met een diagonale polarisatie bij de ontvanger aankomen en is er dus een 50% kans dat de bit bij de ontvanger onjuist is. Door achteraf een paar bits te controleren kunnen ze er dus achter komen of er is afgeluisterd of niet.
Er is echter een probleem, wat maar weer al te duidelijk is gemaakt met dit onderzoek. De quantum staat van een deeltje is heel delicaat. Als een foton reageert met een ander deeltje tijdens de transmissie kan z'n staat verloren gaan. Met de hedendaagse stand van de techniek is het nog altijd heel lastig om de fotonen een grote afstand te laten overbruggen zonder dat een groot deel ervan verloren gaat. Je hebt dus te maken met ruis - bits die niet overeenkomen bij zender en ontvanger, ookal is er niet afgeluisterd. Puur het feit dat er een paar bits dus niet kloppen wil dus niet zeggen dat er afgeluisterd is, en de zender en ontvanger moeten hier rekening mee houden. Ze hebben een bepaalde fouttolerantie (in dit geval 20%) waarvan ze aannemen dat er niet afgeluisterd is. Als een afluisteraar ervoor zorgdraagt dat het aantal verkeerde bits onder die fouttolerantie blijft kan hij dus een aardig deel van de bitstring ontcijferen zonder dat men daar ooit achterkomt. Dit is precies wat de onderzoekers gedaan hebben.
Mag ik aannemen dat het onmogelijk is om een detector te bouwen zonder polarisatie-filter? Een detector die vier waarden (twee bits) per foton uitspuugt. Dus voor wat Orion H, V, D1 en D2 noemt: 00, 01, 10 en 11.
Met zo'n filter wordt een MitM kinderspel (relatief gezien), dus ik neem aan dat het niet kan, maar als iemand (begrijpelijk

) kan toelichten waarom dat onmogelijk is zou wel interessant zijn om te weten. Deze uitleg
According to quantum mechanics (particularly
quantum indeterminacy), no possible measurement distinguishes between the 4 different polarization states, as they are not all orthogonal. The only possible measurement is between any two orthogonal states (a basis).
lijkt te zijn wat ik me afvraag, maar gaat me nogal boven mijn pet.
Ze hebben een bepaalde fouttolerantie (in dit geval 20%) waarvan ze aannemen dat er niet afgeluisterd is.
Begrijp ik het goed dat als je wel afluistert het gedetecteerde foutpercentage gelijk is aan "echte" foutpercentage + afluisterpercentage? (Nou ja, strikt genomen 1 - ( ( 1 - echt ) * ( 1 - afluister ) ), omdat je ook wel eens een bit afluistert die toch al fout gegaan zou zijn.)
Tenzij ik iets over het hoofd zie zul je dan het percentage ruis redelijk nauwkeurig moeten kunnen bepalen om dit voor elkaar te krijgen:
Hun afluistermethode leverde een foutmarge van 19,7 procent op.
Als een afluisteraar dat kan bepalen dan moeten de zender en ontvanger dat toch ook kunnen bepalen? Dan kun je je tolerantie bijstellen aan de hand van de verwachte hoeveelheid ruis en op die manier zeer weinig speelruimte overlaten voor de afluisteraar.
Los daarvan, de tolerantie van 20% is duidelijk veel te hoog; als het zo hoog moet zijn omdat je er in de praktijk dicht in de buurt zit dan is er geen speelruimte om af te luisteren. Als die speelruimte er kennelijk wel is dan kan het "ruisniveau" dat nog geaccepteerd wordt dus omlaag.