Repository contains simulation of symmetric blind reconciliation algorithm realized in Python 2.7.
Launches a simulation of the symmetric blind reconciliation for the current number of tries and QBER values. Keeps the result in output.txt.
Contains basic procedures for performing a test of reconciliation protocol. It includes:
- generation of random keys (bit strings);
- adding errors in accordance with given level of quantum bit error rate (QBER);
- choosing an appropriate rate of LDPC code among a given range and numbers of shortened and punctured bits;
- generation of positions for shortened and punctured bit;
- extending key with shortened and punctured bits;
- syndrome encoding;
- syndrome decoding;
- performing symmetric blind reconciliation for given pair keys;
- testing of the full procedure of information reconciliation, including generation of keys, adding errors, and collection of statistics.
Pool of four standard LDPC codes of block length 1944 together with positions for untainted puncturing. The set of code rates is {5/6, 3/4, 2/3, 1/2}.
Pool of nine LDPC codes with block length 4000, constructed with improved progressive edge growing algorithm with particular distribution polynomials. The set of code rates is {0.9, 0.85, ..., 0.5}.
Contains some auxiliary procedures for reading files with codes.
The storage of parity-check matrices is based on two variables: s_y_joins
and y_s_joins
. They contains positions of nonzero elements for each row and column correspondingly.
For example, for the matrix
H =
1 1 0 1
1 0 1 1
0 1 1 0
one has
s_y_joins = [[0,1,3], [0,2,3],[1,2]]
y_s_joins = [[0,1],[0,2], [1,2],[0,1]]