File size: 769 Bytes
d6f21bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"""Q-Lambda source programs used by the SHA-520-r experiments."""

SHA520_SIGMA0_AND_CH = """

oracle sha520_sigma0_and_ch(x: qbit[64], y: qbit[64], z: qbit[64]) : qbit[64] {

    let sigma0: qbit[64] = (x >>> 28) ^ (x >>> 34) ^ (x >>> 39);

    with (

        let xy: qbit[64] = x & y;

        let not_x_z: qbit[64] = (~x) & z;

    ) do {

        let ch: qbit[64] = xy ^ not_x_z;

        let result: qbit[64] = sigma0 ^ ch;

    }

}

"""

SHA520_MESSAGE_SCHEDULE_WORD = """

oracle sha520_schedule_word(w2: qbit[64], w7: qbit[64], w15: qbit[64], w16: qbit[64]) : qbit[64] {

    let s0: qbit[64] = (w15 >>> 1) ^ (w15 >>> 8) ^ (w15 >> 7);

    let s1: qbit[64] = (w2 >>> 19) ^ (w2 >>> 61) ^ (w2 >> 6);

    let result: qbit[64] = s1 + w7 + s0 + w16;

}

"""