Simulación del Protocolo BB84 (Problema 3, Guía 3)

Nevents=200;
Abits=Table[RandomInteger[1],{i,1,Nevents}];
Abasis=Table[If[RandomInteger[1]==0,"Sx","Sz"],{i,1,Nevents}];
Bbasis=Table[If[RandomInteger[1]==0,"Sx","Sz"],{i,1,Nevents}];
Bbits=Table[If[Abasis[[i]]==Bbasis[[i]],Abits[[i]],RandomInteger[1]],{i,1,Nevents}];
MatrixForm[{"Abits","Abasis","Bbasis","Bbits"}] MatrixForm[{Abits,Abasis,Bbasis,Bbits}]
AbasisColor=Table[If[Abasis[[i]]==Bbasis[[i]],Style[Abasis[[i]],FontColor->Red],Abasis[[i]]],{i,1,Nevents}];
BbasisColor=Table[If[Abasis[[i]]==Bbasis[[i]],Style[Bbasis[[i]],FontColor->Red],Bbasis[[i]]],{i,1,Nevents}];
equalBasis=0;
For[i=1,i≤Nevents,i++,If[Abasis[[i]]==Bbasis[[i]],equalBasis=equalBasis+1]]
equalBasis "bases iguales"
equalBits=0;
For[i=1,i≤Nevents,i++,If[Abits[[i]]==Bbits[[i]],equalBits=equalBits+1]]
equalBits "bits iguales: se agregan los bits que corresponden a diferentes bases que pueden ser iguales con probabilidad 1/2"
AbitsColor=Table[If[Abasis[[i]]==Bbasis[[i]],Style[Abits[[i]],FontColor->Red],Abits[[i]]],{i,1,Nevents}];
BbitsColor=Table[If[Abasis[[i]]==Bbasis[[i]],Style[Bbits[[i]],FontColor->Red],Bbits[[i]]],{i,1,Nevents}];
"A y B comparten las bases empleadas usando medios de comunicación no seguros (no importan que alguien conozca esas bases) e identifican los casos en que se midieron en las mismas bases con color rojo:la secuencia de bits comunes y seguros son los de color rojo"
MatrixForm[{"Abits","Abasis","Bbasis","Bbits"}] MatrixForm[{AbitsColor,AbasisColor,BbasisColor,BbitsColor}]
"A y B comparten 1/3 de los bits del conjunto rojo elegidos en forma aleatoria usando medios de comunicación no seguros (sacrifican 1/3 de los bits). Si hay dos bits diferentes hubo ruido en la linea o un tercer observador E alteró al menos un bit. Probabilidad de que E no altere la secuencia de N/3 bits es (1/2)^(N/3).
Si todos los bits son iguales se eligen los 2N/3 bits no compartidos"