Repository contains simulation of symmetric blind reconciliation algorithm realized in Python 2.7.
Launches a simulaiton 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 withc 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, addings errors, and collection of statistics;
Pool of four standard LDPC codes of block length 1944 together with positions for untanited 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 distribuition polynomials togeteher with postions for untanited puncturing. 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 correspondigly.
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]]