Main step of GOST 28147-89: Difference between revisions
m
→{{header|JavaScript}}
(→{{header|RPL}}: improved code) |
|||
(3 intermediate revisions by 2 users not shown) | |||
Line 740:
for (let сч = 0; сч < 4; сч++) {
const яч = (S >>> (сч << 3)) & 0xFF;
▲ + (ТЗ[сч * 2 + 1][яч >>> 4] << 4)
}
нов_S = (нов_S << 11) + (нов_S >>> 21) & 0xFFFFFFFF ^ N[1];
N[1] = N[0]; N[0] = нов_S;
return N;
Line 787 ⟶ 780:
end
bytes2int(arr) =
int2bytes(x) =
function mainstep(inputbytes, keybytes)
Line 1,314 ⟶ 1,307:
« « SWAP SLB OR » → input key cast
« key REVLIST cast STREAM <span style="color:grey">@ convert key into a little-endian integer</span>
input 1 4 SUB REVLIST cast STREAM + <span style="color:blue">B→LIST</span> <span style="color:grey">@ same for input part 1, then add and back to list format</span>
{ K21 K43 K65 K87 } SWAP B→R 1 ADD GET <span style="color:grey">@ replace bytes according to the table</span>
REVLIST cast STREAM <span style="color:grey">@ back to little-endian format</span>
RLB RL RL RL <span style="color:blue">B→LIST</span> <span style="color:grey">@ roll 11 bits, back to list format</span>
input 1 4 SUB + <span style="color:grey">@ append part 1</span>
» » '<span style="color:blue">MAINSTEP</span>' STO
|