+skein and ubi (512 and 1024bit mode) in assembler
This commit is contained in:
parent
f215d8ed64
commit
c239a90de4
|
@ -120,6 +120,24 @@
|
|||
out _SFR_IO_ADDR(SPL), \reg1
|
||||
.endm
|
||||
|
||||
.macro stack_free_large3 size:req, reg1=r30, reg2=r31
|
||||
in r0, _SFR_IO_ADDR(SREG)
|
||||
in \reg1, _SFR_IO_ADDR(SPL)
|
||||
in \reg2, _SFR_IO_ADDR(SPH)
|
||||
push r16
|
||||
push r17
|
||||
ldi r16, lo8(\size)
|
||||
ldi r17, hi8(\size)
|
||||
add \reg1, r16
|
||||
adc \reg2, r17
|
||||
pop r17
|
||||
pop r16
|
||||
cli
|
||||
out _SFR_IO_ADDR(SPH), \reg2
|
||||
out _SFR_IO_ADDR(SREG), r0
|
||||
out _SFR_IO_ADDR(SPL), \reg1
|
||||
.endm
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* END of MACRO SECTION *
|
||||
|
|
|
@ -5,9 +5,10 @@ ALGO_NAME := SKEIN
|
|||
HASHES += $(ALGO_NAME)
|
||||
|
||||
|
||||
$(ALGO_NAME)_OBJ := threefish_mix.o threefish256_enc_asm.o ubi256_asm.o skein256_asm.o \
|
||||
threefish_mix_4c.o threefish512_enc.o threefish1024_enc.o \
|
||||
ubi512.o ubi1024.o memxor.o skein512.o skein1024.o
|
||||
$(ALGO_NAME)_OBJ := threefish_mix.o \
|
||||
threefish256_enc_asm.o ubi256_asm.o skein256_asm.o \
|
||||
threefish512_enc_asm.o ubi512_asm.o skein512_asm.o \
|
||||
threefish1024_enc_asm.o ubi1024_asm.o skein1024_asm.o
|
||||
$(ALGO_NAME)_TEST_BIN := main-skein-test.o debug.o uart.o hexdigit_tab.o \
|
||||
dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o \
|
||||
hfal-basic.o hfal_skein256.o hfal_skein512.o hfal_skein1024.o shavs.o
|
||||
|
|
|
@ -5,8 +5,9 @@ ALGO_NAME := UBI
|
|||
HASHES += $(ALGO_NAME)
|
||||
|
||||
|
||||
$(ALGO_NAME)_OBJ := threefish_mix.o threefish256_enc_asm.o ubi256_asm.o threefish512_enc.o threefish1024_enc.o \
|
||||
threefish_mix_4c.o ubi512.o ubi1024.o memxor.o
|
||||
$(ALGO_NAME)_OBJ := threefish_mix.o threefish256_enc_asm.o ubi256_asm.o \
|
||||
threefish512_enc_asm.o ubi512_asm.o threefish1024_enc_asm.o \
|
||||
ubi1024_asm.o memxor.o
|
||||
$(ALGO_NAME)_TEST_BIN := main-ubi-test.o debug.o uart.o hexdigit_tab.o \
|
||||
dbz_strings.o nessie_common.o cli.o string-extras.o performance_test.o
|
||||
$(ALGO_NAME)_NESSIE_TEST := test nessie
|
||||
|
|
|
@ -0,0 +1,358 @@
|
|||
/* skein1024_asm.S */
|
||||
/*
|
||||
This file is part of the AVR-Crypto-Lib.
|
||||
Copyright (C) 2009 Daniel Otte (daniel.otte@rub.de)
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*
|
||||
* \author Daniel Otte
|
||||
* \email daniel.otte@rub.de
|
||||
* \date 2009-03-25
|
||||
* \license GPLv3 or later
|
||||
*/
|
||||
|
||||
#include "avr-asm-macros.S"
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void skein1024_init(skein1024_ctx_t* ctx, uint16_t outsize_b){
|
||||
skein_config_t conf;
|
||||
uint8_t null[UBI1024_BLOCKSIZE_B];
|
||||
memset(null, 0, UBI1024_BLOCKSIZE_B);
|
||||
memset(&conf, 0, sizeof(skein_config_t));
|
||||
conf.schema[0] = 'S';
|
||||
conf.schema[1] = 'H';
|
||||
conf.schema[2] = 'A';
|
||||
conf.schema[3] = '3';
|
||||
conf.version = 1;
|
||||
conf.out_length = outsize_b;
|
||||
ctx->outsize_b = outsize_b;
|
||||
ubi1024_init(&(ctx->ubictx), null, UBI_TYPE_CFG);
|
||||
ubi1024_lastBlock(&(ctx->ubictx), &conf, 256);
|
||||
ubi1024_init(&(ctx->ubictx), ctx->ubictx.g, UBI_TYPE_MSG);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param ctx: r24:r25
|
||||
* param outsize_b: r22:r23
|
||||
*/
|
||||
UBICTX0 = 2
|
||||
UBICTX1 = 3
|
||||
CONF0 = 4
|
||||
CONF1 = 5
|
||||
.global skein1024_init
|
||||
skein1024_init:
|
||||
push_range 2, 5
|
||||
stack_alloc_large 32+128-22 ; |<- 22 ->|
|
||||
adiw r30, 1 ; | CONF (32) |
|
||||
movw CONF0, r30 ; | null (128) |
|
||||
movw r26, r24
|
||||
st X+, r22
|
||||
st X+, r23
|
||||
movw UBICTX0, r26
|
||||
ldi r24, 'S'
|
||||
st Z+, r24
|
||||
ldi r24, 'H'
|
||||
st Z+, r24
|
||||
ldi r24, 'A'
|
||||
st Z+, r24
|
||||
ldi r24, '3'
|
||||
st Z+, r24
|
||||
ldi r24, 1
|
||||
st Z+, r24
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r22
|
||||
st Z+, r23
|
||||
ldi 24, 128
|
||||
1: st Z+, r1
|
||||
dec r24
|
||||
brne 1b
|
||||
/* call ubi1024_init*/
|
||||
subi r30, lo8(128)
|
||||
sbci r31, hi8(128)
|
||||
movw r24, UBICTX0
|
||||
movw r22, r30
|
||||
ldi r20, 4
|
||||
rcall ubi1024_init
|
||||
/* call ubi1024_lastBlock*/
|
||||
movw r24, UBICTX0
|
||||
movw r22, CONF0
|
||||
ldi r21, 1
|
||||
clr r20
|
||||
rcall ubi1024_lastBlock
|
||||
/* call ubi1024_init*/
|
||||
movw r24, UBICTX0
|
||||
adiw r24, 16
|
||||
movw r22, r24
|
||||
movw r24, UBICTX0
|
||||
ldi r20, 48
|
||||
rcall ubi1024_init
|
||||
stack_free_large2 32+128-22
|
||||
pop_range 2, 5
|
||||
ret
|
||||
|
||||
/******************************************************************************/
|
||||
.global skein1024_nextBlock
|
||||
skein1024_nextBlock:
|
||||
adiw r24, 2
|
||||
rjmp ubi1024_nextBlock
|
||||
|
||||
/******************************************************************************/
|
||||
.global skein1024_lastBlock
|
||||
skein1024_lastBlock:
|
||||
adiw r24, 2
|
||||
rjmp ubi1024_lastBlock
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void skein1024_ctx2hash(void* dest, skein1024_ctx_t* ctx){
|
||||
ubi1024_ctx_t uctx;
|
||||
uint16_t outsize_b;
|
||||
|
||||
uint64_t counter=0;
|
||||
uint8_t outbuffer[UBI1024_BLOCKSIZE_B];
|
||||
ubi1024_init(&(ctx->ubictx), ctx->ubictx.g, UBI_TYPE_OUT);
|
||||
|
||||
outsize_b = ctx->outsize_b;
|
||||
while(1){
|
||||
memcpy(&uctx, &(ctx->ubictx), sizeof(ubi1024_ctx_t));
|
||||
ubi1024_lastBlock(&uctx, &counter, 64);
|
||||
ubi1024_ctx2hash(outbuffer, &uctx);
|
||||
if(outsize_b<=UBI1024_BLOCKSIZE){
|
||||
memcpy(dest, outbuffer, (ctx->outsize_b+7)/8);
|
||||
break;
|
||||
}else{
|
||||
memcpy(dest, outbuffer, UBI1024_BLOCKSIZE_B);
|
||||
dest = (uint8_t*)dest + UBI1024_BLOCKSIZE_B;
|
||||
outsize_b -= UBI1024_BLOCKSIZE;
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param dest: r24:r25
|
||||
* param ctx: r22:r23
|
||||
*/
|
||||
OUTSIZE_B0 = 16
|
||||
OUTSIZE_B1 = 17
|
||||
UCTX0 = 14
|
||||
UCTX1 = 15
|
||||
UBICTX0 = 12
|
||||
UBICTX1 = 13
|
||||
DEST0 = 10
|
||||
DEST1 = 11
|
||||
.global skein1024_ctx2hash
|
||||
skein1024_ctx2hash:
|
||||
push_range 10, 17
|
||||
/* 144 || 8 || 128 */
|
||||
stack_alloc_large 144+8+128 /* uctx || counter || outbuffer */
|
||||
movw DEST0, r24
|
||||
adiw r30, 1
|
||||
movw UCTX0, r30
|
||||
ldi r16, 144
|
||||
add r30, r16
|
||||
adc r31, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
movw r26, 22
|
||||
ld OUTSIZE_B0, X+
|
||||
ld OUTSIZE_B1, X+
|
||||
movw UBICTX0, r26
|
||||
/* call ubi1024_init */
|
||||
movw r24, UBICTX0
|
||||
adiw r24, 16
|
||||
movw r22, r24
|
||||
movw r24, UBICTX0
|
||||
ldi r20, 63
|
||||
rcall ubi1024_init
|
||||
|
||||
/* main loop */
|
||||
/* copy ubictx in uctx*/
|
||||
1: movw r30, UCTX0
|
||||
movw r26, UBICTX0
|
||||
ldi r24, 144
|
||||
2: ld r25, X+
|
||||
st Z+, r25
|
||||
dec r24
|
||||
brne 2b
|
||||
/* call ubi1024_lastBlock */
|
||||
movw r24, UCTX0
|
||||
adiw r24, 63
|
||||
adiw r24, 63
|
||||
adiw r24, 18
|
||||
movw r22, r24
|
||||
movw r24, UCTX0
|
||||
clr r21
|
||||
ldi r20, 64
|
||||
rcall ubi1024_lastBlock
|
||||
/* copy uctx->g to outbuffer */
|
||||
movw r26, UCTX0
|
||||
adiw r26, 16
|
||||
movw r30, UCTX0
|
||||
adiw r30, 63
|
||||
adiw r30, 63
|
||||
adiw r30, 18+8
|
||||
ldi r24, 128
|
||||
2: ld r25, X+
|
||||
st Z+, r25
|
||||
dec r24
|
||||
brne 2b
|
||||
/* compare outsize_b with 1024*/
|
||||
cpi OUTSIZE_B1, 5
|
||||
brge 5f
|
||||
cpi OUTSIZE_B1, 4
|
||||
brlo 3f
|
||||
tst OUTSIZE_B0
|
||||
breq 3f
|
||||
5: /* copy outbuffer to dest */
|
||||
movw r30, DEST0
|
||||
movw r26, UCTX0
|
||||
adiw r26, 63
|
||||
adiw r26, 63
|
||||
adiw r26, 18+8
|
||||
ldi r24, 128
|
||||
6: ld r25, X+
|
||||
st Z+, r25
|
||||
dec r24
|
||||
brne 6b
|
||||
/* store new dest */
|
||||
movw DEST0, r26
|
||||
/* adjust counter and outsize_b*/
|
||||
subi OUTSIZE_B1, 2
|
||||
movw r30, UCTX0
|
||||
adiw r30, 63
|
||||
adiw r30, 63
|
||||
adiw r30, 18
|
||||
ldi r24, 1
|
||||
ld r25, Z
|
||||
add r25, r24
|
||||
st Z+, r25
|
||||
ldi r24, 7
|
||||
6: ld r25, Z
|
||||
adc r25, r1
|
||||
st Z+, r25
|
||||
dec r24
|
||||
brne 6b
|
||||
rjmp 1b
|
||||
3: /* last iteraton */
|
||||
movw r24, OUTSIZE_B0
|
||||
adiw r24, 7
|
||||
lsr r25
|
||||
ror r24
|
||||
lsr r25
|
||||
ror r24
|
||||
lsr r25
|
||||
ror r24
|
||||
movw r30, DEST0
|
||||
movw r26, UCTX0
|
||||
adiw r26, 63
|
||||
adiw r26, 63
|
||||
adiw r26, 18+8
|
||||
tst r24
|
||||
breq 8f
|
||||
7: ld r25, X+
|
||||
st Z+, r25
|
||||
dec r24
|
||||
brne 7b
|
||||
8:
|
||||
stack_free_large3 144+8+128
|
||||
pop_range 10, 17
|
||||
ret
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void skein1024(void* dest, uint16_t outlength_b, const void* msg, uint32_t length_b){
|
||||
skein1024_ctx_t ctx;
|
||||
skein1024_init(&ctx, outlength_b);
|
||||
while(length_b>SKEIN1024_BLOCKSIZE){
|
||||
skein1024_nextBlock(&ctx, msg);
|
||||
msg = (uint8_t*)msg + SKEIN1024_BLOCKSIZE_B;
|
||||
length_b -= SKEIN1024_BLOCKSIZE;
|
||||
}
|
||||
skein1024_lastBlock(&ctx, msg, length_b);
|
||||
skein1024_ctx2hash(dest, &ctx);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param dest: r24:r25
|
||||
* param outlength_b: r22:r23
|
||||
* param msg: r20:r21
|
||||
* param length_b: r16:r19
|
||||
*/
|
||||
LENGTH_B0 = 2
|
||||
LENGTH_B1 = 3
|
||||
LENGTH_B2 = 4
|
||||
LENGTH_B3 = 5
|
||||
DEST0 = 6
|
||||
DEST1 = 7
|
||||
MSG0 = 8
|
||||
MSG1 = 9
|
||||
CTX0 = 10
|
||||
CTX1 = 11
|
||||
.global skein1024
|
||||
skein1024:
|
||||
push_range 2, 11
|
||||
stack_alloc_large 146
|
||||
adiw r30, 1
|
||||
movw CTX0, r30
|
||||
movw DEST0, r24
|
||||
movw MSG0, r20
|
||||
movw LENGTH_B0, r16
|
||||
movw LENGTH_B2, r18
|
||||
/* call skein1024_init */
|
||||
movw r24, r30
|
||||
rcall skein1024_init
|
||||
1: tst LENGTH_B2
|
||||
brne 4f
|
||||
tst LENGTH_B3
|
||||
brne 4f
|
||||
/* call skein1024_lastBlock */
|
||||
movw r24, CTX0
|
||||
movw r22, MSG0
|
||||
movw r20, LENGTH_B0
|
||||
rcall skein1024_lastBlock
|
||||
/* call skein1024_ctx2hash */
|
||||
movw r24, DEST0
|
||||
movw r22, CTX0
|
||||
rcall skein1024_ctx2hash
|
||||
/* return */
|
||||
stack_free_large2 146
|
||||
pop_range 2, 11
|
||||
ret
|
||||
|
||||
4: /* process preceeding blocks */
|
||||
movw r24, CTX0
|
||||
movw r22, MSG0
|
||||
rcall skein1024_nextBlock
|
||||
ldi r24, 128
|
||||
add MSG0, r24
|
||||
adc MSG0, r1
|
||||
mov r24, LENGTH_B1
|
||||
mov r25, LENGTH_B2
|
||||
sbiw r24, 4
|
||||
sbc LENGTH_B3, r1
|
||||
mov LENGTH_B1, r24
|
||||
mov LENGTH_B2, r25
|
||||
rjmp 1b
|
||||
|
|
@ -186,7 +186,7 @@ skein256_ctx2hash:
|
|||
|
||||
/* main loop */
|
||||
/* copy ubictx in uctx*/
|
||||
movw r30, UCTX0
|
||||
1: movw r30, UCTX0
|
||||
movw r26, UBICTX0
|
||||
ldi r24, 48
|
||||
2: ld r25, X+
|
||||
|
|
|
@ -0,0 +1,351 @@
|
|||
/* skein512_asm.S */
|
||||
/*
|
||||
This file is part of the AVR-Crypto-Lib.
|
||||
Copyright (C) 2009 Daniel Otte (daniel.otte@rub.de)
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*
|
||||
* \author Daniel Otte
|
||||
* \email daniel.otte@rub.de
|
||||
* \date 2009-03-16
|
||||
* \license GPLv3 or later
|
||||
*/
|
||||
|
||||
#include "avr-asm-macros.S"
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void skein512_init(skein512_ctx_t* ctx, uint16_t outsize_b){
|
||||
skein_config_t conf;
|
||||
uint8_t null[UBI512_BLOCKSIZE_B];
|
||||
memset(null, 0, UBI512_BLOCKSIZE_B);
|
||||
memset(&conf, 0, sizeof(skein_config_t));
|
||||
conf.schema[0] = 'S';
|
||||
conf.schema[1] = 'H';
|
||||
conf.schema[2] = 'A';
|
||||
conf.schema[3] = '3';
|
||||
conf.version = 1;
|
||||
conf.out_length = outsize_b;
|
||||
ctx->outsize_b = outsize_b;
|
||||
ubi512_init(&(ctx->ubictx), null, UBI_TYPE_CFG);
|
||||
ubi512_lastBlock(&(ctx->ubictx), &conf, 256);
|
||||
ubi512_init(&(ctx->ubictx), ctx->ubictx.g, UBI_TYPE_MSG);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param ctx: r24:r25
|
||||
* param outsize_b: r22:r23
|
||||
*/
|
||||
UBICTX0 = 2
|
||||
UBICTX1 = 3
|
||||
CONF0 = 4
|
||||
CONF1 = 5
|
||||
.global skein512_init
|
||||
skein512_init:
|
||||
push_range 2, 5
|
||||
stack_alloc_large 32+64-22 ; |<- 22 ->|
|
||||
adiw r30, 1 ; | CONF (32) |
|
||||
movw CONF0, r30 ; | null (64) |
|
||||
movw r26, r24
|
||||
st X+, r22
|
||||
st X+, r23
|
||||
movw UBICTX0, r26
|
||||
ldi r24, 'S'
|
||||
st Z+, r24
|
||||
ldi r24, 'H'
|
||||
st Z+, r24
|
||||
ldi r24, 'A'
|
||||
st Z+, r24
|
||||
ldi r24, '3'
|
||||
st Z+, r24
|
||||
ldi r24, 1
|
||||
st Z+, r24
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r22
|
||||
st Z+, r23
|
||||
ldi 24, 64
|
||||
1: st Z+, r1
|
||||
dec r24
|
||||
brne 1b
|
||||
/* call ubi512_init*/
|
||||
sbiw r30, 63
|
||||
sbiw r30, 1
|
||||
movw r24, UBICTX0
|
||||
movw r22, r30
|
||||
ldi r20, 4
|
||||
rcall ubi512_init
|
||||
/* call ubi512_lastBlock*/
|
||||
movw r24, UBICTX0
|
||||
movw r22, CONF0
|
||||
ldi r21, 1
|
||||
clr r20
|
||||
rcall ubi512_lastBlock
|
||||
/* call ubi512_init*/
|
||||
movw r24, UBICTX0
|
||||
adiw r24, 16
|
||||
movw r22, r24
|
||||
movw r24, UBICTX0
|
||||
ldi r20, 48
|
||||
rcall ubi512_init
|
||||
stack_free_large 32+64-22
|
||||
pop_range 2, 5
|
||||
ret
|
||||
|
||||
/******************************************************************************/
|
||||
.global skein512_nextBlock
|
||||
skein512_nextBlock:
|
||||
adiw r24, 2
|
||||
rjmp ubi512_nextBlock
|
||||
|
||||
/******************************************************************************/
|
||||
.global skein512_lastBlock
|
||||
skein512_lastBlock:
|
||||
adiw r24, 2
|
||||
rjmp ubi512_lastBlock
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void skein512_ctx2hash(void* dest, skein512_ctx_t* ctx){
|
||||
ubi512_ctx_t uctx;
|
||||
uint16_t outsize_b;
|
||||
|
||||
uint64_t counter=0;
|
||||
uint8_t outbuffer[UBI512_BLOCKSIZE_B];
|
||||
ubi512_init(&(ctx->ubictx), ctx->ubictx.g, UBI_TYPE_OUT);
|
||||
|
||||
outsize_b = ctx->outsize_b;
|
||||
while(1){
|
||||
memcpy(&uctx, &(ctx->ubictx), sizeof(ubi512_ctx_t));
|
||||
ubi512_lastBlock(&uctx, &counter, 64);
|
||||
ubi512_ctx2hash(outbuffer, &uctx);
|
||||
if(outsize_b<=UBI512_BLOCKSIZE){
|
||||
memcpy(dest, outbuffer, (ctx->outsize_b+7)/8);
|
||||
break;
|
||||
}else{
|
||||
memcpy(dest, outbuffer, UBI512_BLOCKSIZE_B);
|
||||
dest = (uint8_t*)dest + UBI512_BLOCKSIZE_B;
|
||||
outsize_b -= UBI512_BLOCKSIZE;
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param dest: r24:r25
|
||||
* param ctx: r22:r23
|
||||
*/
|
||||
OUTSIZE_B0 = 16
|
||||
OUTSIZE_B1 = 17
|
||||
UCTX0 = 14
|
||||
UCTX1 = 15
|
||||
UBICTX0 = 12
|
||||
UBICTX1 = 13
|
||||
DEST0 = 10
|
||||
DEST1 = 11
|
||||
.global skein512_ctx2hash
|
||||
skein512_ctx2hash:
|
||||
push_range 10, 17
|
||||
/* 80 || 8 || 64 */
|
||||
stack_alloc_large 80+8+64 /* uctx || counter || outbuffer */
|
||||
movw DEST0, r24
|
||||
adiw r30, 1
|
||||
movw UCTX0, r30
|
||||
adiw r30, 63
|
||||
adiw r30, 17
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
st Z+, r1
|
||||
movw r26, 22
|
||||
ld OUTSIZE_B0, X+
|
||||
ld OUTSIZE_B1, X+
|
||||
movw UBICTX0, r26
|
||||
/* call ubi512_init */
|
||||
movw r24, UBICTX0
|
||||
adiw r24, 16
|
||||
movw r22, r24
|
||||
movw r24, UBICTX0
|
||||
ldi r20, 63
|
||||
rcall ubi512_init
|
||||
|
||||
/* main loop */
|
||||
/* copy ubictx in uctx*/
|
||||
1: movw r30, UCTX0
|
||||
movw r26, UBICTX0
|
||||
ldi r24, 80
|
||||
2: ld r25, X+
|
||||
st Z+, r25
|
||||
dec r24
|
||||
brne 2b
|
||||
/* call ubi512_lastBlock */
|
||||
movw r24, UCTX0
|
||||
adiw r24, 63
|
||||
adiw r24, 17
|
||||
movw r22, r24
|
||||
movw r24, UCTX0
|
||||
clr r21
|
||||
ldi r20, 64
|
||||
rcall ubi512_lastBlock
|
||||
/* copy uctx->g to outbuffer */
|
||||
movw r26, UCTX0
|
||||
adiw r26, 16
|
||||
movw r30, UCTX0
|
||||
adiw r30, 63
|
||||
adiw r30, 17+8
|
||||
ldi r24, 64
|
||||
2: ld r25, X+
|
||||
st Z+, r25
|
||||
dec r24
|
||||
brne 2b
|
||||
/* compare outsize_b with 512*/
|
||||
cpi OUTSIZE_B1, 3
|
||||
brge 5f
|
||||
cpi OUTSIZE_B1, 2
|
||||
brlo 3f
|
||||
tst OUTSIZE_B0
|
||||
breq 3f
|
||||
5: /* copy outbuffer to dest */
|
||||
movw r30, DEST0
|
||||
movw r26, UCTX0
|
||||
adiw r26, 63
|
||||
adiw r26, 17+8
|
||||
ldi r24, 64
|
||||
6: ld r25, X+
|
||||
st Z+, r25
|
||||
dec r24
|
||||
brne 6b
|
||||
/* store new dest */
|
||||
movw DEST0, r26
|
||||
/* adjust counter and outsize_b*/
|
||||
subi OUTSIZE_B1, 2
|
||||
movw r30, UCTX0
|
||||
adiw r30, 63
|
||||
adiw r30, 17
|
||||
ldi r24, 1
|
||||
ld r25, Z
|
||||
add r25, r24
|
||||
st Z+, r25
|
||||
ldi r24, 7
|
||||
6: ld r25, Z
|
||||
adc r25, r1
|
||||
st Z+, r25
|
||||
dec r24
|
||||
brne 6b
|
||||
rjmp 1b
|
||||
3: /* last iteraton */
|
||||
movw r24, OUTSIZE_B0
|
||||
adiw r24, 7
|
||||
lsr r25
|
||||
ror r24
|
||||
lsr r25
|
||||
ror r24
|
||||
lsr r24
|
||||
movw r30, DEST0
|
||||
movw r26, UCTX0
|
||||
adiw r26, 63
|
||||
adiw r26, 17+8
|
||||
tst r24
|
||||
breq 8f
|
||||
7: ld r25, X+
|
||||
st Z+, r25
|
||||
dec r24
|
||||
brne 7b
|
||||
8:
|
||||
stack_free_large2 80+8+64
|
||||
pop_range 10, 17
|
||||
ret
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void skein512(void* dest, uint16_t outlength_b,const void* msg, uint32_t length_b){
|
||||
skein512_ctx_t ctx;
|
||||
skein512_init(&ctx, outlength_b);
|
||||
while(length_b>SKEIN512_BLOCKSIZE){
|
||||
skein512_nextBlock(&ctx, msg);
|
||||
msg = (uint8_t*)msg + SKEIN512_BLOCKSIZE_B;
|
||||
length_b -= SKEIN512_BLOCKSIZE;
|
||||
}
|
||||
skein512_lastBlock(&ctx, msg, length_b);
|
||||
skein512_ctx2hash(dest, &ctx);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param dest: r24:r25
|
||||
* param outlength_b: r22:r23
|
||||
* param msg: r20:r21
|
||||
* param length_b: r16:r19
|
||||
*/
|
||||
LENGTH_B0 = 2
|
||||
LENGTH_B1 = 3
|
||||
LENGTH_B2 = 4
|
||||
LENGTH_B3 = 5
|
||||
DEST0 = 6
|
||||
DEST1 = 7
|
||||
MSG0 = 8
|
||||
MSG1 = 9
|
||||
CTX0 = 10
|
||||
CTX1 = 11
|
||||
.global skein512
|
||||
skein512:
|
||||
push_range 2, 11
|
||||
stack_alloc_large 82
|
||||
adiw r30, 1
|
||||
movw CTX0, r30
|
||||
movw DEST0, r24
|
||||
movw MSG0, r20
|
||||
movw LENGTH_B0, r16
|
||||
movw LENGTH_B2, r18
|
||||
/* call skein512_init */
|
||||
movw r24, r30
|
||||
rcall skein512_init
|
||||
1: tst LENGTH_B2
|
||||
brne 4f
|
||||
tst LENGTH_B3
|
||||
brne 4f
|
||||
/* call skein512_lastBlock */
|
||||
movw r24, CTX0
|
||||
movw r22, MSG0
|
||||
movw r20, LENGTH_B0
|
||||
rcall skein512_lastBlock
|
||||
/* call skein512_ctx2hash */
|
||||
movw r24, DEST0
|
||||
movw r22, CTX0
|
||||
rcall skein512_ctx2hash
|
||||
/* return */
|
||||
stack_free_large 82
|
||||
pop_range 2, 11
|
||||
ret
|
||||
|
||||
4: /* process preceeding blocks */
|
||||
movw r24, CTX0
|
||||
movw r22, MSG0
|
||||
rcall skein512_nextBlock
|
||||
ldi r24, 64
|
||||
add MSG0, r24
|
||||
adc MSG0, r1
|
||||
mov r24, LENGTH_B1
|
||||
mov r25, LENGTH_B2
|
||||
sbiw r24, 2
|
||||
sbc LENGTH_B3, r1
|
||||
mov LENGTH_B1, r24
|
||||
mov LENGTH_B2, r25
|
||||
rjmp 1b
|
||||
|
|
@ -116,15 +116,15 @@ void testrun_stdtest_threefish256(void){
|
|||
memset(tweak, 0, 16);
|
||||
|
||||
cli_putstr_P(PSTR("\r\nkey: "));
|
||||
cli_hexdump(key, 32);
|
||||
cli_hexdump_block(key, 32, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\ntweak: "));
|
||||
cli_hexdump(tweak, 16);
|
||||
cli_hexdump_block(tweak, 16, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\nplain: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_hexdump_block(data, 32, 4, 16);
|
||||
threefish256_init(key, tweak, &ctx);
|
||||
threefish256_enc(data, &ctx);
|
||||
cli_putstr_P(PSTR("\r\ncipher: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_hexdump_block(data, 32, 4, 16);
|
||||
/* second test */
|
||||
for(i=0; i<32; ++i){
|
||||
key[i] = 0x10+i;
|
||||
|
@ -133,16 +133,16 @@ void testrun_stdtest_threefish256(void){
|
|||
for(i=0; i<16; ++i){
|
||||
tweak[i] = i;
|
||||
}
|
||||
cli_putstr_P(PSTR("\r\n\r\nkey: "));
|
||||
cli_hexdump(key, 32);
|
||||
cli_putstr_P(PSTR("\r\nkey: "));
|
||||
cli_hexdump_block(key, 32, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\ntweak: "));
|
||||
cli_hexdump(tweak, 16);
|
||||
cli_hexdump_block(tweak, 16, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\nplain: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_hexdump_block(data, 32, 4, 16);
|
||||
threefish256_init(key, tweak, &ctx);
|
||||
threefish256_enc(data, &ctx);
|
||||
cli_putstr_P(PSTR("\r\ncipher: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_hexdump_block(data, 32, 4, 16);
|
||||
}
|
||||
|
||||
void testrun_stdtest_threefish512(void){
|
||||
|
@ -157,21 +157,17 @@ void testrun_stdtest_threefish512(void){
|
|||
memset(tweak, 0, 16);
|
||||
|
||||
cli_putstr_P(PSTR("\r\nkey: "));
|
||||
cli_hexdump(key, 32);
|
||||
cli_hexdump_block(key, 32, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(key+32, 32);
|
||||
cli_hexdump_block(key+32, 32, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\ntweak: "));
|
||||
cli_hexdump(tweak, 16);
|
||||
cli_hexdump_block(tweak, 16, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\nplain: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+32, 32);
|
||||
cli_hexdump_block(data, 64, 4, 16);
|
||||
threefish512_init(key, tweak, &ctx);
|
||||
threefish512_enc(data, &ctx);
|
||||
cli_putstr_P(PSTR("\r\ncipher: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+32, 32);
|
||||
cli_hexdump_block(data, 64, 4, 16);
|
||||
|
||||
for(i=0; i<64; ++i){
|
||||
key[i] = 0x10+i;
|
||||
|
@ -180,22 +176,18 @@ void testrun_stdtest_threefish512(void){
|
|||
for(i=0; i<16; ++i){
|
||||
tweak[i] = i;
|
||||
}
|
||||
cli_putstr_P(PSTR("\r\n\r\nkey: "));
|
||||
cli_hexdump(key, 32);
|
||||
cli_putstr_P(PSTR("\r\nkey: "));
|
||||
cli_hexdump_block(key, 32, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(key+32, 32);
|
||||
cli_hexdump_block(key+32, 32, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\ntweak: "));
|
||||
cli_hexdump(tweak, 16);
|
||||
cli_hexdump_block(tweak, 16, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\nplain: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+32, 32);
|
||||
cli_hexdump_block(data, 64, 4, 16);
|
||||
threefish512_init(key, tweak, &ctx);
|
||||
threefish512_enc(data, &ctx);
|
||||
cli_putstr_P(PSTR("\r\ncipher: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+32, 32);
|
||||
cli_hexdump_block(data, 64, 4, 16);
|
||||
}
|
||||
|
||||
void testrun_stdtest_threefish1024(void){
|
||||
|
@ -210,33 +202,15 @@ void testrun_stdtest_threefish1024(void){
|
|||
memset(tweak, 0, 16);
|
||||
|
||||
cli_putstr_P(PSTR("\r\nkey: "));
|
||||
cli_hexdump(key, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(key+32, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(key+64, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(key+96, 32);
|
||||
cli_hexdump_block(key, 128, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\ntweak: "));
|
||||
cli_hexdump(tweak, 16);
|
||||
cli_hexdump_block(tweak, 16, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\nplain: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+32, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+64, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+96, 32);
|
||||
cli_hexdump_block(data, 128, 4, 16);
|
||||
threefish1024_init(key, tweak, &ctx);
|
||||
threefish1024_enc(data, &ctx);
|
||||
cli_putstr_P(PSTR("\r\ncipher: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+32, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+64, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+96, 32);
|
||||
cli_hexdump_block(data, 128, 4, 16);
|
||||
|
||||
for(i=0; i<128; ++i){
|
||||
key[i] = 0x10+i;
|
||||
|
@ -245,34 +219,16 @@ void testrun_stdtest_threefish1024(void){
|
|||
for(i=0; i<16; ++i){
|
||||
tweak[i] = i;
|
||||
}
|
||||
cli_putstr_P(PSTR("\r\n\r\nkey: "));
|
||||
cli_hexdump(key, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(key+32, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(key+64, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(key+96, 32);
|
||||
cli_putstr_P(PSTR("\r\nkey: "));
|
||||
cli_hexdump_block(key, 128, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\ntweak: "));
|
||||
cli_hexdump(tweak, 16);
|
||||
cli_hexdump_block(tweak, 16, 4, 16);
|
||||
cli_putstr_P(PSTR("\r\nplain: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+32, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+64, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+96, 32);
|
||||
cli_hexdump_block(data, 128, 4, 16);
|
||||
threefish1024_init(key, tweak, &ctx);
|
||||
threefish1024_enc(data, &ctx);
|
||||
cli_putstr_P(PSTR("\r\ncipher: "));
|
||||
cli_hexdump(data, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+32, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+64, 32);
|
||||
cli_putstr_P(PSTR("\r\n "));
|
||||
cli_hexdump(data+96, 32);
|
||||
cli_hexdump_block(data, 128, 4, 16);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
# ExtremelyLongMsgKAT_224.txt
|
||||
# Algorithm Name: Skein
|
||||
# Principal Submitter: Bruce Schneier
|
||||
|
||||
Repeat = 16777216
|
||||
Text = abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmno
|
||||
MD = FDFB34297DDE24BDB76920CF6292121FB1D3C247CBA3B5DD76787762
|
|
@ -0,0 +1,7 @@
|
|||
# ExtremelyLongMsgKAT_256.txt
|
||||
# Algorithm Name: Skein
|
||||
# Principal Submitter: Bruce Schneier
|
||||
|
||||
Repeat = 16777216
|
||||
Text = abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmno
|
||||
MD = A1345CAC7213FF9FCEF4DF3105A729A9BE0EE899E0BD2EF14720E9533F5D5B06
|
|
@ -0,0 +1,7 @@
|
|||
# ExtremelyLongMsgKAT_384.txt
|
||||
# Algorithm Name: Skein
|
||||
# Principal Submitter: Bruce Schneier
|
||||
|
||||
Repeat = 16777216
|
||||
Text = abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmno
|
||||
MD = 896FE24B39B9B234DE300A9C05902B410465F62BF20F97A8123130BEF6993F3D6CE04100FC0A5482254D29EAB245C145
|
|
@ -0,0 +1,7 @@
|
|||
# ExtremelyLongMsgKAT_512.txt
|
||||
# Algorithm Name: Skein
|
||||
# Principal Submitter: Bruce Schneier
|
||||
|
||||
Repeat = 16777216
|
||||
Text = abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmno
|
||||
MD = A8BCC959B92E9689F403AFF39810B949F68AB50B82D69A6721C91F4A2570305FF88F058838D31B2DFAC0B69E0D65DBEA14B559950ECDE92943EC1A2E9513323D
|
|
@ -0,0 +1,7 @@
|
|||
# ExtremelyLongMsgKAT_768.txt
|
||||
# Algorithm Name: Skein
|
||||
# Principal Submitter: Bruce Schneier
|
||||
|
||||
Repeat = 16777216
|
||||
Text = abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmno
|
||||
MD = 3A652B5068F620C4A865F4BD87485C3084B6682D5D40D020693CE72245EE53565956158E653FA3E5738A45F991C5330AD9422C192698430880144C5107325429BFB27747C9E23300F2EB4A9A97DBBC01AF71B607F7475D5958D29D1CB2DD0C47
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,305 @@
|
|||
# MonteCarlo_224.txt
|
||||
# Algorithm Name: Skein
|
||||
# Principal Submitter: Bruce Schneier
|
||||
|
||||
Seed = 6CD4C0C5CB2CA2A0F1D1AECEBAC03B52E64EA03D1A1654372936545B92BBC5484A59DB74BB60F9C40CEB1A5AA35A6FAFE80349E14C253A4E8B1D77612DDD81ACE926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7
|
||||
|
||||
j = 0
|
||||
MD = A139D31CCFCED05E23FEAEF59D5BC0C572DF886B805539A82063E94A
|
||||
|
||||
j = 1
|
||||
MD = 7EC47475EE6E075C1C85E4192B820296FA37D61DA218CBDD2A63F0AE
|
||||
|
||||
j = 2
|
||||
MD = 37E96AD0CADF7FB766D5B69A87AE04184EC51C691B8E2CA46C778B8E
|
||||
|
||||
j = 3
|
||||
MD = 4640389506A32592253CFC5401E8E3FA44925029E239B0BECCDAE095
|
||||
|
||||
j = 4
|
||||
MD = 00A1749D39615F13A325FA853F5D90FD6CE2F3BE938CB93F2DFA833C
|
||||
|
||||
j = 5
|
||||
MD = 12517AF6EA752971C7D794F8411EB4FCF206E78981E95925D6D9611D
|
||||
|
||||
j = 6
|
||||
MD = E3E505A6687AF2B5379390C9CFD951AB9FD82C0FA3CC1C5B165900DD
|
||||
|
||||
j = 7
|
||||
MD = 363F6903360AD2EFA81BBFB7C0A88AB3DF0B6898AC308F1E4144B8CC
|
||||
|
||||
j = 8
|
||||
MD = 822D1289408DA4C0F237BC1482C674D7FB55FC6B3912CA8C7BBE923B
|
||||
|
||||
j = 9
|
||||
MD = E5818327E37DD87F101D31440A46C04BEE68447C649172C3DABCB406
|
||||
|
||||
j = 10
|
||||
MD = 0EFA6C3B861E9796D52C1CF736FACE3CD681B14A5F569A82176C5FE4
|
||||
|
||||
j = 11
|
||||
MD = A1A90E6FDC6B33217E7E83FB699B6440E11706B411246190DF86E3FD
|
||||
|
||||
j = 12
|
||||
MD = 16CE4536A37C3CBE7145B09489DD541D75F2A4CF9042EE5420EAA76D
|
||||
|
||||
j = 13
|
||||
MD = E2D5F6873C276C52BE3510ABEB06373690313156853E44F0C998033A
|
||||
|
||||
j = 14
|
||||
MD = 8B78048AD1AD2799CAF8A3F66C726F6BC4FEC3ADBCD50C639C6D8F8A
|
||||
|
||||
j = 15
|
||||
MD = 5B715DC2BA541AF4C12B04E38F3536FE0062209003FCAAC87E65EF49
|
||||
|
||||
j = 16
|
||||
MD = E56B28078F1C5083142B9E8C0B16F83953A11F324527DAAC44004443
|
||||
|
||||
j = 17
|
||||
MD = EA963BF3602CDE5F6CF7416E6BB31241144207379709A71F6627C8F6
|
||||
|
||||
j = 18
|
||||
MD = 9E04553F5C2C4FB0FD0A81955C11631D041BE1850DF74F9151B5473C
|
||||
|
||||
j = 19
|
||||
MD = 0C7BDEEF69D713C0FE3C0FE0B472CB4DF853598432570A78EBFD4C3E
|
||||
|
||||
j = 20
|
||||
MD = DB658D3CDFDD81EC6912024DDD38EF6659F68234E43AD0516E469ADA
|
||||
|
||||
j = 21
|
||||
MD = AD6D7E63A3666FF5AC4346DBD3C39BBA514593748797632D6830C477
|
||||
|
||||
j = 22
|
||||
MD = 78C974554166A6EBB4971B75E5D22FECE7FFC72EE0F0171A2CE0ED80
|
||||
|
||||
j = 23
|
||||
MD = 24526FA4C19844929C23D7F2DE090C9B7B50F5E66A2E14F70D4E74C2
|
||||
|
||||
j = 24
|
||||
MD = F9499F144C7AC3662517DED95EDAC8095202CE5194431D47AB55E8EB
|
||||
|
||||
j = 25
|
||||
MD = 5E327FE4E5611DE3E44DBD96D99AA2A100956589377E719365380E07
|
||||
|
||||
j = 26
|
||||
MD = 5A39DBBA87619A162CA532D40BAE3BAB986D75625275F9E81DF72202
|
||||
|
||||
j = 27
|
||||
MD = 99DD12DB3E4931BDF18AE179583CBBA8B0B0DC65533177689155529D
|
||||
|
||||
j = 28
|
||||
MD = 1755888202819D06FF4FB0108FD5575468EDDA051BDD9542F470A4CF
|
||||
|
||||
j = 29
|
||||
MD = 579D98E4BA9CA915CAB876E9FDDFA4952B259DB7BA2967FC338E08C9
|
||||
|
||||
j = 30
|
||||
MD = 8C32B95F44BBDB4B690498BC6B2DD7921671C72182EEC59929751666
|
||||
|
||||
j = 31
|
||||
MD = 8B32F7359E60BA20A4AFF153A5D666F87220152E1A961D255E325C88
|
||||
|
||||
j = 32
|
||||
MD = FAF67D84F3F7B8ACE2836C71F6D919D5F93BBA0C6D77631F24601EDF
|
||||
|
||||
j = 33
|
||||
MD = 20BA1A59FCC10F255C1E5136E02E320E9AF1C4E2B264294B3359F55F
|
||||
|
||||
j = 34
|
||||
MD = 0C6504549D57645735FB2CF401C4D7B662BE27797178774D3202972F
|
||||
|
||||
j = 35
|
||||
MD = A8FC28FFCE2A72A3F5FD8E5BBB2E1AFA6C3C1BEED8DE9DF022A0507C
|
||||
|
||||
j = 36
|
||||
MD = 411B79E912885FF7E53592651CABB2402560E99031A329C7347B2865
|
||||
|
||||
j = 37
|
||||
MD = E2E12C23A08075B8FB0B0D18D9A5A64FEAFC120C209C2612B1866D3D
|
||||
|
||||
j = 38
|
||||
MD = 45CAD0468B1302BEBE580670034301AEC02A52AD8864A531CE6D6A8D
|
||||
|
||||
j = 39
|
||||
MD = D59863B1B9B02951C90D4F0885FB56A180BBE50255337028F57D72E9
|
||||
|
||||
j = 40
|
||||
MD = 962936272AF522A81A8B6F7D4324CA3AD02CC752A3C23584B10774FB
|
||||
|
||||
j = 41
|
||||
MD = 1BA92C5CF1D52B564BBE7B7851F262CEC49075C251730FBE9472E76A
|
||||
|
||||
j = 42
|
||||
MD = C18655132EDF72A21E97DC216C4D98A144A2E39A1AFABB5D26954870
|
||||
|
||||
j = 43
|
||||
MD = BABAFE42E87D0C2C81AD03F78D528977572F10DD1BA8892492A4211D
|
||||
|
||||
j = 44
|
||||
MD = F8A50FCD90E85E8DE0F8593CAEED8E997C9FFF7F4E2F03E13779555C
|
||||
|
||||
j = 45
|
||||
MD = CE16B54BED754EB2E783226919FD54192E915D29A5ADEF4BE019C6CA
|
||||
|
||||
j = 46
|
||||
MD = 4D0A6416AB7481C5847FB3DF9D0BADB1E6821D032A8876AF40FE0F11
|
||||
|
||||
j = 47
|
||||
MD = D6A7E617A6ABFA7D6DC8917D2437EB1F4D1CC7EBFF7FE38E21058A55
|
||||
|
||||
j = 48
|
||||
MD = DB2414EE1AB5F92FFD5B15C4ACF28F68550B417B850D1A372AEC888D
|
||||
|
||||
j = 49
|
||||
MD = A2BF0C432DEF04EF772C246B913DCD9121E43BA5E94F0198D825961F
|
||||
|
||||
j = 50
|
||||
MD = 20487B6D2C7BFE7096E760AB53BC6A311BFFEF5AF61E0876782FF45F
|
||||
|
||||
j = 51
|
||||
MD = 4C7EB5665AC5C23E867C52EC80E0EA704791800AD95B0535808FDA64
|
||||
|
||||
j = 52
|
||||
MD = CB5F23FEF7E9C4A17632151199F974F9C5651653C6BB6F8C5252AC62
|
||||
|
||||
j = 53
|
||||
MD = 459D2DEE09FCC47317212F2F145F9F5BA82494025E9545E04D42A033
|
||||
|
||||
j = 54
|
||||
MD = 4EFEFCBA5456E34B2DCB52C2ADD78188B32BCED52843E86208FC2410
|
||||
|
||||
j = 55
|
||||
MD = BC2EA428A05E0C68AA3F2E3B0AECDEC18B5AD41EB964738D6B16ACEF
|
||||
|
||||
j = 56
|
||||
MD = 729BCD4DDFBDA23C7EF3C0D633BB2E9265FB17A1B610DCD308F7E6CA
|
||||
|
||||
j = 57
|
||||
MD = D6D8F37797E0C53A85B689F94EA1626AB50CA97F5DE47F39CF420BD9
|
||||
|
||||
j = 58
|
||||
MD = 66ED266706BD0E438FD9470B1067E280653F3B0A484B2D7D6C49C560
|
||||
|
||||
j = 59
|
||||
MD = 174B95F6A76125BE672E753D44CE5C42EA84FD4056F9A607B68BC72B
|
||||
|
||||
j = 60
|
||||
MD = 18AF875BEA3FCCF93A46FA96789F19A07943C5498B6F61AE87CC2A74
|
||||
|
||||
j = 61
|
||||
MD = A1B543EBCCF6FC7F5174866804759AE484A485C00D594750F36685BE
|
||||
|
||||
j = 62
|
||||
MD = D50D0C51DB50544663820D2C571A4DDC081A47FD4A4258AD24DB767F
|
||||
|
||||
j = 63
|
||||
MD = 4C30A0EC7907E2317B65F81DFE89FBB4139448E5565F2EA630B3E669
|
||||
|
||||
j = 64
|
||||
MD = 98269E501B6018D79F60AF1127387BCE5FDD1C47DE86A0F1020E75EF
|
||||
|
||||
j = 65
|
||||
MD = A0101F6CABA0A7D471C6D1A28DFAF070B950F10C88391F694C5C008F
|
||||
|
||||
j = 66
|
||||
MD = C9EFCCA28CA3743DC7C987DE8A1A6DB05AB582668AE7134B7D575DE0
|
||||
|
||||
j = 67
|
||||
MD = 6EEB7BCF645600199E95FD609910BD298463E94EBC333582940F2B7C
|
||||
|
||||
j = 68
|
||||
MD = 83B9735B4061F77484CCAFC05CF08950921032453DCD6B7390AE161F
|
||||
|
||||
j = 69
|
||||
MD = 1E7A32AC034A0F3DF92F7338607F2863651AA138CA85040E48B4B7FE
|
||||
|
||||
j = 70
|
||||
MD = 39C6DFEF72EF317BCA604D9724EA75B24C45E79BCE3E07BEBF1B41BB
|
||||
|
||||
j = 71
|
||||
MD = 4648A849D3D6B7C94B0BC96484145B0EE856B5312E8BC32B06D12471
|
||||
|
||||
j = 72
|
||||
MD = 2D04D95C9E23FFD7EFAE5FB02C9DDEC45863AF749C421DF641738B3D
|
||||
|
||||
j = 73
|
||||
MD = B3A98DB405803FD248D64E41D6BDAD70179F82CE53804E39A22EE97D
|
||||
|
||||
j = 74
|
||||
MD = B4CFCEEE08CBB5600A174C073E51EA1A4CE9A74448CAE71DAE1A2AC1
|
||||
|
||||
j = 75
|
||||
MD = 933FF1B91411539AAAA42B5E21FFB9369E1D91E238A16DBB6DD560C7
|
||||
|
||||
j = 76
|
||||
MD = 7415D5FD01E531EC5A851FFFC1300F34FA52443D58048C993F2867E3
|
||||
|
||||
j = 77
|
||||
MD = C869F5FA25DA2F7E3E6816D5DF4A1FD4132C978813EF08EA393AF8B6
|
||||
|
||||
j = 78
|
||||
MD = 74228ECAF790504397892DE6525F630CAA39298CE16E0A6316CBB326
|
||||
|
||||
j = 79
|
||||
MD = FA97A86009D1420B5A766F6CA4865A1BD68C91F0AD14511AC447E6B6
|
||||
|
||||
j = 80
|
||||
MD = D6E032780494017B2305B57A6A61942946DFCB12B8EC29DF468D517B
|
||||
|
||||
j = 81
|
||||
MD = C275CB45E08065BFDB10E5581EEC141ACF8B1234A0A747C55B1881AD
|
||||
|
||||
j = 82
|
||||
MD = 87CEB24F07E8A41C59F65A1F2135BEB7D1A578F9351E903538281C8B
|
||||
|
||||
j = 83
|
||||
MD = 8BCB3D18E11ECD15199AE134DBBA73AA8245378841DF7A20AA92C2E8
|
||||
|
||||
j = 84
|
||||
MD = 32559EC289647F8F8217325830D135459F83C34E7376834717EF1B65
|
||||
|
||||
j = 85
|
||||
MD = F1AA12711D690C5BE3B72661DC8EDA6302A9BB30307ABFF379F43C35
|
||||
|
||||
j = 86
|
||||
MD = 7235F7C0DC763DD0C154D460928663AEDA31DEAD12C61207DFEF1666
|
||||
|
||||
j = 87
|
||||
MD = D9EC64429A961270312BB7B5955B6DC5806559AE50D69DC584B9D801
|
||||
|
||||
j = 88
|
||||
MD = A65C9C6718713B120BB5539E8794C640F255D946438C3226E04F6A8F
|
||||
|
||||
j = 89
|
||||
MD = 5ED977872EED1FFEBB7D9B2394B5448A2369A7C00B3B9937B519A193
|
||||
|
||||
j = 90
|
||||
MD = 09964042C3C59FEABF6D4048FCBBFEDF7A0414EB8CE0F5728CFCF1A6
|
||||
|
||||
j = 91
|
||||
MD = D858BA46041F095C76ED1B08423DC0D2F52416EAC75B5B27FE564380
|
||||
|
||||
j = 92
|
||||
MD = ECD48B38603701A17C72B1ACF277D85B7D638233D3DAD0D10BDF221F
|
||||
|
||||
j = 93
|
||||
MD = 7A1755277462D0709327CB9AC7B7EF8E41D94BBCF9384C0E40027552
|
||||
|
||||
j = 94
|
||||
MD = E995C661AD8B35E273D8BFC10E55761ECB4E5D4DB28824286A36FCA3
|
||||
|
||||
j = 95
|
||||
MD = 30088854C41B4267E8E4149F6E3C3A1FC10BDE613B7692942AF67E5A
|
||||
|
||||
j = 96
|
||||
MD = B31F3E1E301FFC5A9A6E68D93F0462C6A1C6DE38E1CE20E24E12A1E4
|
||||
|
||||
j = 97
|
||||
MD = 8BDEC750455F0EFD8BD8EFCAFBDDE0FE45650965B9142CD1EF5E42FF
|
||||
|
||||
j = 98
|
||||
MD = 7C6E4BA105A77FFC4CAA5DF86F50AA17DEA40C6167C013B7CF0E5677
|
||||
|
||||
j = 99
|
||||
MD = E4065291FB3F9FC513FF3E7E6D44A474426AC9080A00F71D57A5D347
|
|
@ -0,0 +1,305 @@
|
|||
# MonteCarlo_256.txt
|
||||
# Algorithm Name: Skein
|
||||
# Principal Submitter: Bruce Schneier
|
||||
|
||||
Seed = 6CD4C0C5CB2CA2A0F1D1AECEBAC03B52E64EA03D1A1654372936545B92BBC5484A59DB74BB60F9C40CEB1A5AA35A6FAFE80349E14C253A4E8B1D77612DDD81ACE926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7
|
||||
|
||||
j = 0
|
||||
MD = 31068E0CE7302ADA0EC5EB00A5AABDC003E3022324659BDB13B7F4944A1CF471
|
||||
|
||||
j = 1
|
||||
MD = 5E141BDC3BABD12A21F9BD6EDA5E35D54BBB0C298B58964E78A4DAEB4EA4A927
|
||||
|
||||
j = 2
|
||||
MD = 5D9E5184DE7CBFA6719E0B507BC206238E727430B16403631ECDBEC4F6C678E5
|
||||
|
||||
j = 3
|
||||
MD = A34466CECA9A4086C451A2E2A559DA3815FF82D33BD6EEFB9F84BB6384372CBD
|
||||
|
||||
j = 4
|
||||
MD = 956869B3D0047CA10C16F0B1B6691B888FE5798873CE7DFC598E9E01A4138C26
|
||||
|
||||
j = 5
|
||||
MD = 994847B3BF7A0936867F475B84B7DE27C7213D797DC49817E8508FFBD4F8CB35
|
||||
|
||||
j = 6
|
||||
MD = E03DDFC2B1C985F71E25E890768E8BBAEA9006DEDEC70900C350C81A859E070C
|
||||
|
||||
j = 7
|
||||
MD = 92072480478F987FCF37BC0D55ED5436949B24F0AC0EA4265BE060906675206D
|
||||
|
||||
j = 8
|
||||
MD = C7D32224C92F1C4AA043F3EC72C85680B04B919FE672733D190D0D036B443441
|
||||
|
||||
j = 9
|
||||
MD = AB3818984E92EA9302EF76B12C18D5FEDF4AE7A7AF0D58257D7F662AFAC0FD14
|
||||
|
||||
j = 10
|
||||
MD = F2AF3AF3DEAE067B32E53C61585AFD10CE9C5302ECEAB2C82FC350FFD2202594
|
||||
|
||||
j = 11
|
||||
MD = 250E042E1D8E75A99E22F1C875B0D0118B0F569A35B19D79CA6BC9E4B9B45DAB
|
||||
|
||||
j = 12
|
||||
MD = 52A11160C9F27C10F3954ABC87AB9C1E225F7278956401E8A451DE528E63F75A
|
||||
|
||||
j = 13
|
||||
MD = 8F793DD724608B1416E1E02C278B210A03F844D3DF608B61C172FD0F62754A70
|
||||
|
||||
j = 14
|
||||
MD = 32E13ADF0BE71EEB2BF8EE8A12B068BD6AB77DDFF0679D3454E9A8A0E2E84864
|
||||
|
||||
j = 15
|
||||
MD = 616DCB4020B29784838C3652E377F796D7D1256056C17744F81C6AEB67EFD6D9
|
||||
|
||||
j = 16
|
||||
MD = 28D3A7C9AD956507AE17CD494EB4D1AD716910441E88A327A646179A10D78FD8
|
||||
|
||||
j = 17
|
||||
MD = CDCD17A08121D66A344D30F7FF47C0AA80458D3D190446C3DEE8E6FEAEBF7E70
|
||||
|
||||
j = 18
|
||||
MD = 1F6FF7F7617D84361568532CD7538DC0137C519D7734EA5CE30644B15957F059
|
||||
|
||||
j = 19
|
||||
MD = 93F1327940B4DA1B855111482024B04BD7CF213B2468B142C3B8E849D99FD442
|
||||
|
||||
j = 20
|
||||
MD = F649DD1E064D85929CE0C97BAD0B965E5428DD8984516D06CD89620D7CFB73DA
|
||||
|
||||
j = 21
|
||||
MD = 5EF80B8EFBF9CD82232AFD6FBEBF40B279621E880F5ED8D2F8624CE807136D64
|
||||
|
||||
j = 22
|
||||
MD = 6256765FF72BF8A40F66DE3FCE9D79E55D79C37B477B873CE6C893BAA674AF24
|
||||
|
||||
j = 23
|
||||
MD = A068157510365F530009AEBE56394FF27852BAF0C3233B94FA1E7DBBB399681D
|
||||
|
||||
j = 24
|
||||
MD = 9A6639482A478F63D0D7511F16CCCA135EA325D3C60C5358D9DF9D280D6294EA
|
||||
|
||||
j = 25
|
||||
MD = 49FF3BE3609EFD3E75569D445B435B35548D9B22BEAD07AD645D7DBFA0608306
|
||||
|
||||
j = 26
|
||||
MD = 5CE4E88979137249A552125A23644A9C018317E2C1013C9AF519CC851A25797A
|
||||
|
||||
j = 27
|
||||
MD = 72FE72049E86B46D0F1132ACE8F10D85359DE345F8A6D3A1B69D51574268CF0A
|
||||
|
||||
j = 28
|
||||
MD = 7B60BBCBF5F31D2BD234C9E9B226A09A45B308CE555EDDBAAFACED2BBEEB498F
|
||||
|
||||
j = 29
|
||||
MD = B0B75629A2BB757387B378A4EE513360A78B9423230BF5090266EC67F8EB7011
|
||||
|
||||
j = 30
|
||||
MD = 8813A9AB6A6D1824BC4FC58C9619E6330EEACCB5E52CE0A3844DB091F63DA4E6
|
||||
|
||||
j = 31
|
||||
MD = F4D5D6AD0EED4F3D2A1F42745A1AA94994EF5BF7502ED4B908D519CAC6DF347C
|
||||
|
||||
j = 32
|
||||
MD = 72D3071BB161C2ABF82EFAAAE3C3C5CEE055656BA5BB65BEF4E1EF1EC8C4F81E
|
||||
|
||||
j = 33
|
||||
MD = DE54DCAAC04A4271A9327A6CD5D59890036884C2A0C3B0B6C04441FFE5A6C102
|
||||
|
||||
j = 34
|
||||
MD = 1BD738E60E28A39E03E5D72310E299D131A6D5329AEB0444C262E4B4DBB5B446
|
||||
|
||||
j = 35
|
||||
MD = F4E7F34D31107BDBB32C1D12C840BFFB039B4B790B69ACD83331FF8C3AFA4675
|
||||
|
||||
j = 36
|
||||
MD = 27D4C0E798ABE7F369221FDC534F11BFD19CC6173E051FF0CA058330E6A9FFED
|
||||
|
||||
j = 37
|
||||
MD = F5F852D49CA4313FED9C6A2A77B7469104F806709F72C69D7291EF290FF2C039
|
||||
|
||||
j = 38
|
||||
MD = F69A0C7C04CBACA7244442B153A03C61495A0D01A15503F09E840A5E5E8B4FCD
|
||||
|
||||
j = 39
|
||||
MD = 581C944B8B6283BF1350D3835AA703CEEC5B64EFA84A519FC2362B8F91758E37
|
||||
|
||||
j = 40
|
||||
MD = CF5A204835699C57504897DA8B60A5840CE7BCBDB2404B8B9522EF386D265A70
|
||||
|
||||
j = 41
|
||||
MD = C5527DFDD7A482B700D9EA23C54EC25579ED44ACFBE4909A0BF543569F910EED
|
||||
|
||||
j = 42
|
||||
MD = AEE5E6AFE191A7FCA5E2DAB08EC59C2F94808663C882360CE9028ACDBDE163CB
|
||||
|
||||
j = 43
|
||||
MD = 5D88DEB2C65F9ED8BF9DEEF6636C1346F0FF07C3B08976C66A71E58A42A78240
|
||||
|
||||
j = 44
|
||||
MD = CF0F6A09BB2C20F0192271B86326EC77BA45FFFAC131243B05741D68C9913660
|
||||
|
||||
j = 45
|
||||
MD = 946D7D2EE80CC563D1BCEEE8AB8D41095BB8958D346330A155DC7AE9E0860C46
|
||||
|
||||
j = 46
|
||||
MD = 21C040062EBD304269D3FA2E59F9A46D6D7472FF9ACBDB269F7FF84FA006DD42
|
||||
|
||||
j = 47
|
||||
MD = 41917149B7C677F0203AFB55F6D44BD79185FB68A7DB8BBAC490EB388A0525C9
|
||||
|
||||
j = 48
|
||||
MD = F344377FC55976FD621E8A401299D6B2174101B12F86B16A30F9F7B978FCEA76
|
||||
|
||||
j = 49
|
||||
MD = EF4F85D2D2DEFCDD6A62CDCB9A558A6755277A56D9B71B729474C4582E261A3E
|
||||
|
||||
j = 50
|
||||
MD = 9048F11C1365567520EBEB2D24CAF3769041801AD57D5251947BBA48F947710A
|
||||
|
||||
j = 51
|
||||
MD = 72F2C922D9D4E6201605C384C7C1381320F5253AEB3059731B4614E8508D2911
|
||||
|
||||
j = 52
|
||||
MD = A2C53942279578D8159ED380FB34FB38D4C60523B5B2290D9447290FC1BBD6BC
|
||||
|
||||
j = 53
|
||||
MD = D1B8D09D8399B7E9A69906F3A3BD511B2B63B4E23C0B9EB1AAF4B22200727456
|
||||
|
||||
j = 54
|
||||
MD = 20018577D062AA5F15C4A78793FD3D4A5B75BA8FB9EEBAC6763F9A2A1E55C7D0
|
||||
|
||||
j = 55
|
||||
MD = 031D2416B307EAFF3CA8B72E7B014CF2A17AE81D53A77A21257A9601052BD088
|
||||
|
||||
j = 56
|
||||
MD = 6831D1194733D686BA399E0BB3889CF708276237D4A6124B17D07F7B8E656C25
|
||||
|
||||
j = 57
|
||||
MD = BBBB309A72D43A3001D6E4A222D3E9F195F309229F619949FCBDBD740EFBB154
|
||||
|
||||
j = 58
|
||||
MD = F20A61BD712F9640F604D27E5440E0C1D4E3CB4407A09996673D478269FFFED4
|
||||
|
||||
j = 59
|
||||
MD = D8C4F86C8399DE355F1A62AC6F834F8B215A558E4BE786B690421A7EF3A177BC
|
||||
|
||||
j = 60
|
||||
MD = DCC93633E7F37A8DF39430709515AA46CAD886A7A29D3A3B0E646020E7B9C1EF
|
||||
|
||||
j = 61
|
||||
MD = A2B55F7E6F9E7A9A5A87467FE41DDCA6937B4019EACD5E2F630EE8EECC1BCF96
|
||||
|
||||
j = 62
|
||||
MD = 744DEA34A1DCEE59C97F62DE13DF717F37535EA3DC7AD630B3B64BEA36205445
|
||||
|
||||
j = 63
|
||||
MD = A26E54C2FB0AC72BF2F5AC5CC67C29F67F28BA1316487E4F52B2F608B43DCC06
|
||||
|
||||
j = 64
|
||||
MD = C46175D30A0D44B36F3DA563BFA544D2F51E2CF67A8FAB319DDE6C202721F31A
|
||||
|
||||
j = 65
|
||||
MD = 8F8F1D54DB90186AAC70B3A2AFCAB1FBEAC761F666A77BD0DDE2C8D18EEBF895
|
||||
|
||||
j = 66
|
||||
MD = FF96F751BDA3919D878D5A4C8273A4B145CBEC87A06E07B29AD6AC622BD094F3
|
||||
|
||||
j = 67
|
||||
MD = 3A7E722661B2B2F1471ACAE374906CD14CE04FA45B2009442E8DCC460D4ED258
|
||||
|
||||
j = 68
|
||||
MD = CB80D4639598C49D6C4DE3EF9FAF245BC06FAD48F5A3CBE00FB73D0DAB4E7AC8
|
||||
|
||||
j = 69
|
||||
MD = 3AFD7FAD6A5B52C668E615E452D308CB6E44663C710B85C01667858173F6B164
|
||||
|
||||
j = 70
|
||||
MD = 443580DE91426DB58F84E4BA5ECC967DDCDAAE897E390D66964E7539E155C888
|
||||
|
||||
j = 71
|
||||
MD = 636D9155403FF2E4ECC69D5FB54D4D3E3F9F41AD3933A53EE5F0C631A4229AA3
|
||||
|
||||
j = 72
|
||||
MD = 0DF173BE1F0F09CD74E57424606120AFD52239D702F79DC77460823C2B9F0920
|
||||
|
||||
j = 73
|
||||
MD = 79FA8275A74E5074FFF18432C7C4674D0B73DF9D12B33BCBE9C998CE80EA55EA
|
||||
|
||||
j = 74
|
||||
MD = DFA03B97DF848C6D5863E750E72E109222336B67861A5E9E9CB3216CD65F3039
|
||||
|
||||
j = 75
|
||||
MD = E855A9C013457837702D8C98865BCC52D34E1398E762EB6CB2FFD42EC78C7568
|
||||
|
||||
j = 76
|
||||
MD = E9D82077F77A633679A6D9E5515176AF2A83D926A17390058264591B9E696436
|
||||
|
||||
j = 77
|
||||
MD = 2A2BAFF97424CCC1F8EFE6B7625F10E096F7709A3CDDBF1074361429A50FB64D
|
||||
|
||||
j = 78
|
||||
MD = 890D2D6F7D025C591CBECB0B42759B150864A55FC993679EF6B4C60F6C159D2E
|
||||
|
||||
j = 79
|
||||
MD = FE2109F8FA8337562C235F106A42E1AC2CD464711038DE706D6BF2A6CE773A07
|
||||
|
||||
j = 80
|
||||
MD = D496DC61B0205FB38F05B17BE7F491CD70116B7385AC79A3F275FBF0ED17029E
|
||||
|
||||
j = 81
|
||||
MD = 600FA4F0B6926AEBB7B509D8ACC896D8463768C290AF242708F52B7FB0437582
|
||||
|
||||
j = 82
|
||||
MD = 6B826D6960673892FD2C00044F6D86CC79AAB5872CEDFC95074E288097EFBC1B
|
||||
|
||||
j = 83
|
||||
MD = 23208A26EE7C558CDE2075105C156EB3CF2106163F79D898F0716B46F6CC2844
|
||||
|
||||
j = 84
|
||||
MD = 3880CAD0AB01CBE19E8ECD85BECDF1D6C644501C9F5F9F3B52D2E5C23CEDCFD6
|
||||
|
||||
j = 85
|
||||
MD = ABEDFAB22163F332CFA3BCA4EDF9DE8E896A0916B3B52A075A8572CA602CA2E7
|
||||
|
||||
j = 86
|
||||
MD = 2AF6DF9E6E8E3C9725BF05DA7138A5C9CA42785A6285CD1D7B47D8D88714C327
|
||||
|
||||
j = 87
|
||||
MD = D726231B10E201284B5740156859AE10483B6CA569AD4517633994B05785266E
|
||||
|
||||
j = 88
|
||||
MD = 73D635CA8368DE4B429A3E4E1B5FBF1EBF29ABEA4EF9B59D3B2DF491C0616F58
|
||||
|
||||
j = 89
|
||||
MD = 7752FC79A57AC830E5B45EF82F2FA4521A6855111D98CAC37B85F9F292EBB149
|
||||
|
||||
j = 90
|
||||
MD = A22CC871F0467B125E736851A5B9DA8416E8B1597CAB84419E433E28D73F4B97
|
||||
|
||||
j = 91
|
||||
MD = 0409FE4801722A0D095F1ED59A0EAC185259257868E8EEB166D4B6573D4571CF
|
||||
|
||||
j = 92
|
||||
MD = 54D7C01780C3A5340D731E83D7B128AF13808F352766B2C9C9C7853097F8EADB
|
||||
|
||||
j = 93
|
||||
MD = C7E879A973A72631F78C10BC74A44478F7B873431B6C0ACDFE93C71438B102CE
|
||||
|
||||
j = 94
|
||||
MD = BC5BF239B22F4F83281795F462CEB03B3DCE1A377F23F6A8FF8A418FBF4DDCA6
|
||||
|
||||
j = 95
|
||||
MD = 3EE3ED2422274E2C9203C004AC577AA702EBE9A5385E5DC4AF40522BB038CF87
|
||||
|
||||
j = 96
|
||||
MD = 858798B8919AA9AC3F0875667DDACF7E51072B9ABD93F4F4AEB211F75D0CB653
|
||||
|
||||
j = 97
|
||||
MD = 45F65B81C0FC93A8E25BACE16AA4FE9E344FFBA0B56E7B57F65D9252D4551D9B
|
||||
|
||||
j = 98
|
||||
MD = 14944FB3348E2FD05C6C126ECE7A25D825CADB283185EF80FB6C0C9356C467BB
|
||||
|
||||
j = 99
|
||||
MD = 547BF07AC2069877E13240650E5C866D0E4CB9C33319AA4A0B95A66229C89BE3
|
|
@ -0,0 +1,305 @@
|
|||
# MonteCarlo_384.txt
|
||||
# Algorithm Name: Skein
|
||||
# Principal Submitter: Bruce Schneier
|
||||
|
||||
Seed = 6CD4C0C5CB2CA2A0F1D1AECEBAC03B52E64EA03D1A1654372936545B92BBC5484A59DB74BB60F9C40CEB1A5AA35A6FAFE80349E14C253A4E8B1D77612DDD81ACE926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7
|
||||
|
||||
j = 0
|
||||
MD = F5E395712FF0F17B053C7E030281883C7C8BDEF12F91F83C987376447A9A76D5744C7CE8CBE07FA33E510FA3E1DF3978
|
||||
|
||||
j = 1
|
||||
MD = 74B15655B1143726AB11F68F3CD807FADF99A07674EA030641208FDD8C949A9195757D82E92FAF7E057C49BDC9222AD0
|
||||
|
||||
j = 2
|
||||
MD = 4283882B9CF6BF777611F684978A6B8C235F97671D4E1DD8322B71E27EFEB9FF604C3CC2AC479CD00ED6EAEA920E62D1
|
||||
|
||||
j = 3
|
||||
MD = AEA086E27CC47E39ABA0028EB19F6A2F19040B6737508B7726B8EF2366D775641E64CB1CD2D8F3F66A5A0E126FA2A842
|
||||
|
||||
j = 4
|
||||
MD = EC27B343618EAB0B0C1967FAE35FB7B7EC3569F23E033CDE649894F230820E76EE90DE22433B9C87E41F3F33A4E07297
|
||||
|
||||
j = 5
|
||||
MD = 15F1D50C99EFD4F88C510DE6182526FAD79FC459E1F276D20B3BD4ECE19F114374DE2563D10865480552E8A9BB9C198A
|
||||
|
||||
j = 6
|
||||
MD = B1392F74765D8AAEE8E4BC36F104CB5068728B61211DB4442F13A55F9EBDAAD94E23E6EB32C32411E2948D6C521B5707
|
||||
|
||||
j = 7
|
||||
MD = EFE036268A32A39B848D00C64A7C7FC7B80396B23015D0EBEF68376A0F97C0B920E86C263C663089A81C8A1273913507
|
||||
|
||||
j = 8
|
||||
MD = DD78B74FE6E6272C60339FA5E1496DE3366D8FD508954B582BC82FCAC262F3EDCDFF369792AA9F5B41983B5861A1C874
|
||||
|
||||
j = 9
|
||||
MD = 5FC8CBE634667416C278B1DDC9F46C6D888D65CC59E6F1B5FC4CDB529FD4AE1EF837E9B40B13A18468964976666FFE51
|
||||
|
||||
j = 10
|
||||
MD = 3BBF09A292AB04333D31C3379809C92879AA8C718544FCB85D9C37455D701A1CBB0C95491B19E3EB1E93207DE6ED5FCB
|
||||
|
||||
j = 11
|
||||
MD = CF4FC053082A74701A26818244D3C1457E0572F7FC2E49504C4A3C9987E9B3A4C98351E67C30893AD0BF7C39BB3B2AC9
|
||||
|
||||
j = 12
|
||||
MD = 9E5658527BC5BD9C09D585B02366A6E585561CED9B5D903BB2218BD8A7710962BF21ADA597CCBA2C0000403400073EC0
|
||||
|
||||
j = 13
|
||||
MD = 394400F9AD12F961832DE31BCF9613DE53650BCF2F295257C4F256AEFFDE3A276EDD5FB7472CFEF68838DE73D765D6BD
|
||||
|
||||
j = 14
|
||||
MD = 7DD26C050B2F12EF6A78DE5BA8CC49DA384068A5E747DD8359C13F6A4465BD96F8413C28730BBCA2F766BB05BD62CB54
|
||||
|
||||
j = 15
|
||||
MD = 46CC87D18F5ADB8601603934B0D60C0F3D3F6B270F4354C152C8A1C83C836E3959D4D7B0CB774DACD14C00896E19AE01
|
||||
|
||||
j = 16
|
||||
MD = D03A281F72C42A57FE11E1A5214D0E264BE7E892A64DA50252839ECF58A0C90E73E3A38FE48E127FC919205AE2BD4BD4
|
||||
|
||||
j = 17
|
||||
MD = 6BB3AC89FAD1BE1CF5000F77B4C3E3F5E4E4705B9125C192BC7DDBA645E9278304C2822DCDC59C02F06E62BCA1801103
|
||||
|
||||
j = 18
|
||||
MD = A3964D2A0FB1D41FDCA2BFFC22BDEF574491FCAC81D6DC7210F433CA66E20BEDFD4CD52925C2E1F019A76E0627F4874F
|
||||
|
||||
j = 19
|
||||
MD = 6C6681BFFE8E80330B242CBD34B8A132E6D0D560539D1094F4115BD8230F5E2744E2E4626B76AD6E8AFD2E9A54C34862
|
||||
|
||||
j = 20
|
||||
MD = AF83BE48BA31E08D85ABB6C867B4A99BDE42C2A0B2BCE5B4D71864E11D331B793F2C148CD52819F49422B1A1E7B8E499
|
||||
|
||||
j = 21
|
||||
MD = 7A4B53FF816766D215BA022A0AE4535307235F587921C27174A0BBE9FBB914E53B1D8D71B45D2ED25ED35FF3E9D7A6B9
|
||||
|
||||
j = 22
|
||||
MD = 7544940B958A72C2903560B380A720C1BAD017863D4D64A46D6D5166BB1B502A20C9C0DA90AB4EA8FA983AFF58BC2B52
|
||||
|
||||
j = 23
|
||||
MD = C33B197512D2872A8DD6B06E1B065E8B42E272B778EEFE91ED2DF571E9885A2A89E70A8448F7D90B9F8620711F86B688
|
||||
|
||||
j = 24
|
||||
MD = B43E8FFBD80D35A1F6619565C838F934D6496AA9C3B80CEE59A480B458F39706250FB9417D7107F9859AE5EF297E763B
|
||||
|
||||
j = 25
|
||||
MD = 45374C4A6B837FD362675AB58FEC260BB304058CAE24DF2FD372C1030B5BA5F9085BB035523AD463E8FDE12904D95CFA
|
||||
|
||||
j = 26
|
||||
MD = C6F53D3B3F815B2FB5CA64A10F2AE320BF999ADDFFCF334CD12B959F6CF8F2FDBD46CF137384B59D8DAC2D6B212A594B
|
||||
|
||||
j = 27
|
||||
MD = A5E8F73023C1522021BA0B3CB9A2C8929EC552D7F240BD4E8023CAEBF235D523A99183736C210EFB84FDAC7B9237B4B1
|
||||
|
||||
j = 28
|
||||
MD = FC67F4281632735ECAF12E618BAA79740223739DC5E828B3A8541F3AA1CFA0B4428ACA01A5C779AE69FF4E7DAB061E72
|
||||
|
||||
j = 29
|
||||
MD = 0F72FA46D3C98A26C8B2B567A87BC356D7F009E42D42A7EBE61376017E4D94EBFE7639ECE9A9A4D4F40B2BACBCAC1E6D
|
||||
|
||||
j = 30
|
||||
MD = CE5D2F58F480C20F8BA5ADA1656262E86C8F902E2E633E1D5C1C7BBC83112C96EA104DCB14F2EA7CC4F23141070BD1CF
|
||||
|
||||
j = 31
|
||||
MD = 1DC9C769B36C61C1384045643001705EE165776408AAC42B75173A52EE0DD4638C83B8EBE0E8D620C74384C0C89CC822
|
||||
|
||||
j = 32
|
||||
MD = A2C61745F79ECFC73B269BC616885E439C637384EA86B6F50CFE32C3871554E08414F4696BF6D7F6B5356B44CA6D2990
|
||||
|
||||
j = 33
|
||||
MD = 4D21008ED773A971E0238D7367F1C5FCEBF85430759581604531034CAC34C69076FEFDC5224D2B45E3CFBC8385E8D124
|
||||
|
||||
j = 34
|
||||
MD = 10AA1644CBA6D2E32323005B517EDA11EDCA53507E25733D30D65DFDEFBEF9D579A7C007A7D2B158E720D542C44E51EE
|
||||
|
||||
j = 35
|
||||
MD = C408FDF92005A00116DF87C00FED461252CAC31913A78A383A0379DBB6E3B0D61DA6D0B953D0DF8E60ADE6BDC2CEBB16
|
||||
|
||||
j = 36
|
||||
MD = 605955011137F473601F3ACC9936E0416F8FAABAD5B13270BE0B420A076AC404A3FC33E27AE8D7B91DCB0C5DB9112090
|
||||
|
||||
j = 37
|
||||
MD = 176A4FF062E00A133483D007E17675C15C272BEEE9731300209C29938D076415306F340C4BC71D032FF0A622C0E4B76A
|
||||
|
||||
j = 38
|
||||
MD = F045C5022FE83245D4524BDA950FA48DFF9DC4DB70E03428EFDA437CE9EB4344648160CC427B907AD50D342D341BC14E
|
||||
|
||||
j = 39
|
||||
MD = 781FDF47F8BAD47937BEBC14940D34208EB1562EDB6218DC943EAFD7BD69CC3A91C7BEB2D8EDCCD8B3FA596C3E530F8A
|
||||
|
||||
j = 40
|
||||
MD = 7A9899B2BD59627AF1A11BFAA255EC7043BAA481A193F4918DC26732AE081AC0E12CEDBFCCFD7B24C52CADCE3DB89D9C
|
||||
|
||||
j = 41
|
||||
MD = 4A374111FDB35FB280C61DB76B2EEED11362CD956CCD1109DD326DB0E022F33F23FBF50B62EA4A5E6284CF7D3DAE7529
|
||||
|
||||
j = 42
|
||||
MD = E23576178AFA058F601B9DC8EA42372AA81D1DB976EA1EF5062AF8B00B88902E8D13D27986549E84C5A89C5EFC163969
|
||||
|
||||
j = 43
|
||||
MD = 607C555006CCFD9C1FB747F1BB0B661F852AA5B74C37F60E0968B85759DCC2EA2468761140F65F3BD565F5E103DEDC87
|
||||
|
||||
j = 44
|
||||
MD = 9D489D4D1B80F347C3CFFE93000870B47D916758CDBE38E271C3F797E4B36E014ED00ADCCDA0E5CC65A6C4D4B104546D
|
||||
|
||||
j = 45
|
||||
MD = E18BC97EE9AC361D665833DA60F815F11276B36E2DBBF5A272340FDF3FBFD036EBD58C0E37E8C725F2539F074C693C3B
|
||||
|
||||
j = 46
|
||||
MD = 9BC1B5E4004A6266A66F1BC0C7C9B2109338FEE6BF572B6577BE01C06AF5033B9C4F98EAEFF15B2449760E95C863FCC4
|
||||
|
||||
j = 47
|
||||
MD = 80117DCE793448344FC511D1B4EDB9F1E0844BA658665586853CC6BA08F17C3A00FE910ACA28EF00436E4012ED6D70E4
|
||||
|
||||
j = 48
|
||||
MD = 90BD34D1508E50B43D9B5F39EEF9CC41C33A00148AD4A61B5022E1BBC2D6724397EC193FA137DD1B762F89B909BDF6AA
|
||||
|
||||
j = 49
|
||||
MD = DA7BACD85173A0A7B277531C7B21CBB4F37FBC3C8A6E6A28C92DE33A845FC0FE7FF4BF84A3371C89F6BF597A7D04C487
|
||||
|
||||
j = 50
|
||||
MD = 04EF8C83F31B25E61D32576CE9901AE859B3BF4C1BE980F2ABD1FC8989B853353F12B906479E653305CB68F0AD315948
|
||||
|
||||
j = 51
|
||||
MD = 44989F3BEFD43A9FDE71342F5080F9B205FAE4CE946A630F30D68246A8C1D532758FB9E5CF4C2B289CEEA6CE8BB92E20
|
||||
|
||||
j = 52
|
||||
MD = 7F08F3A269B3A494B3E80153ABD04C5BB765662620A491AFC770C9C6BA2CF755752950FF4AF96074ADEF573125DDBD1A
|
||||
|
||||
j = 53
|
||||
MD = 5AF0E2AC6832A8FA3708AD72EBA6BCD3FB7859C86EDBF2CDDFCADC09915BB40C2E31E37B7F3B3CE3C41D47183265778B
|
||||
|
||||
j = 54
|
||||
MD = C1DFDD2AD121D99EE3D3FD206B6672E2D05BF25BDE18804281E82E48540494D5B02830D93CCB80AD38A5ED9858916980
|
||||
|
||||
j = 55
|
||||
MD = CF081579344B5FF836C40C71D968833DAD0EBD74338AD6959A08B1E73BD14959387D8C04A4779E04EEB6549B309741BB
|
||||
|
||||
j = 56
|
||||
MD = 90ECF8531899CB5E7C6F6E05B9905D0A05BBF24214041D434309C0864618BC0DB4A33E050A9EEA9336B8D7F41CB4E48A
|
||||
|
||||
j = 57
|
||||
MD = A55C306CF44986106AA82F842BD774E392B8F34BF1A8F376E7709743F3B807838977E64DD8FD739E0A45BA3F431E4980
|
||||
|
||||
j = 58
|
||||
MD = BC0B35B6E77821B198AEF92F0DD2421A43B415B7E8D255D3754D67DEC30B83AFEF5573288E7AAACDFC34641E1BAADF60
|
||||
|
||||
j = 59
|
||||
MD = E320118EE7A99D99CFB58CB908F9A102C082BE5F6CDE785EA65D35003980CB1CCDE45B780B4599809DA19F21D506D31F
|
||||
|
||||
j = 60
|
||||
MD = AADB0C73CDAA5C1CD876A6BA3D5F5C074FEB76861798D82D7C1CC57788E4C209E97DD49FF61807A236B577537262B81B
|
||||
|
||||
j = 61
|
||||
MD = 8685140691158F895DCB69A1A9E79635EB434ABE4E54C600C0CAD4F8E8048265FC3FD22DD766D87350DC135A4A199B09
|
||||
|
||||
j = 62
|
||||
MD = 0347772A3145F1908D00B0F48C2DEF599C6AD26DAC493611472DAF00F7AB2231A0D862DEBF0B3E3EFD3841425290C8F3
|
||||
|
||||
j = 63
|
||||
MD = A148EA7DB80D489F89224E0BA621295431B1C410E99710E209A267037C767ADA28668E82C80A68FE856B49878798B6E8
|
||||
|
||||
j = 64
|
||||
MD = 1BA43ACE4DF719A6D91D6FA8EA9E368E531A410369416F4E0086EAC06AFC14235990ED2F24D1DD9127DCF092DCA24D2F
|
||||
|
||||
j = 65
|
||||
MD = A058D22738E77726284800C94B0B0958AE314CC46AE27508B86D2E5873564E41818295CD01F6495A0A1BFF4D103428BB
|
||||
|
||||
j = 66
|
||||
MD = 22FAA500932363A5882339EAAA8884AA4F073FFADCFF684321BF917A95281B9C35A938686BB988F9311837DF407246A2
|
||||
|
||||
j = 67
|
||||
MD = 6B53205E660377D78DC9D3CAE3C2E9284D4605C07D48A9D71057E4D17DF5C0530D4D4D4DF4186060B8090D7AC98D452C
|
||||
|
||||
j = 68
|
||||
MD = E1854EB183E02D7A043C2880DA57A7F06D0F1886F3F6E2BD4AF1934D6311771CFA045D47A9CA1031E7D0A8597AAD4D52
|
||||
|
||||
j = 69
|
||||
MD = 359182A42ED15C007A31E3EC36EECB6C3233D8D0AA498E373616DE8C21A939326406CF1186ED12836B99004C1DC8C384
|
||||
|
||||
j = 70
|
||||
MD = 99729843C0DE7017057A55751111A73E9C871EBD636DA21258F19231AAB8A28B7B0DB0B535F85868B0E07447D1ECC3DC
|
||||
|
||||
j = 71
|
||||
MD = DD0D006E5377B2170A35D2BF21EE5DC3BC1344430693EBC38FB7F4AF57A3B7E4B002ABA268A40A61B0737E1E94AA4429
|
||||
|
||||
j = 72
|
||||
MD = 12A6BCA153CFF13E3088F839539230CF610992C495426AF8B09639FE822C68C0A373B3EDC9CBEC76A84C035561127EBC
|
||||
|
||||
j = 73
|
||||
MD = 2FE5C922B697F35710186FE87E842BF25062742B551144B1CD7E94C50D558AF4D33862E98219148FE2E1E1163A0322B0
|
||||
|
||||
j = 74
|
||||
MD = C5FEF88101218AEAA28D04C9C827A52FDD4A0B6E7759A924994D48594F62474F3637BE86373CCF78B52E86DB4D78D397
|
||||
|
||||
j = 75
|
||||
MD = C83335A82C60D037C669F79AC7FC06B6AF44F72F114694417038E1814932244FD2AD6AE9DFB02D0E2005115CCDE6E195
|
||||
|
||||
j = 76
|
||||
MD = 114C6CD4ACA6187608B63465379DBD9B370345EF19E65C4F46DAFC802828DF68206C9A109712BE240612995C58C75EE6
|
||||
|
||||
j = 77
|
||||
MD = 6BBA375CA0FAB8FBDE87780D62687DA7B2B8AB75A690F78D1C956D9905D8DD2AE45A58153E0CAED3E7FF0A36EDD89814
|
||||
|
||||
j = 78
|
||||
MD = 2E131664B8587A6D37CC9B0F7A0640A405118279051F90746943B760D71084B640F1A789D0AD5681FAFB7700B430C7AE
|
||||
|
||||
j = 79
|
||||
MD = 07F6F07A1330AC1C21908501A766338BC8271C87EFDDC7417317B4E73E9B7A63B5E5C1FA015CE1B285E60A0C405D74F1
|
||||
|
||||
j = 80
|
||||
MD = AB1636007767C5F1A5FF701AA964AB16DB50244CB02B33589899232555776021650CF73A34A0377FE7078D9AFF452C93
|
||||
|
||||
j = 81
|
||||
MD = BA89F828ADB1FA5FB0E8958014A49AD649D66422225CD75FBBE93AA2A63C5028419A2C05A3A66E56557F16CF2CC2D60F
|
||||
|
||||
j = 82
|
||||
MD = CE96048F65DA65AB78D0D2645E5D82C911639C9A42CFBA543F997244A4FF100402F80306577E1764801AB83A7A4D30B3
|
||||
|
||||
j = 83
|
||||
MD = 088848ED5035A000E8FD744D3A9981F9213ADF4828A0FA060641CB83C7F53EE2ED9DC8A5D73AF693718F2D25EC1F1345
|
||||
|
||||
j = 84
|
||||
MD = 13C517229A3327F4609C7591DA337DD85464441DA4EAD614700B211CBFB38E3EB8F7E371AD5B69F0352A0C9D0429B780
|
||||
|
||||
j = 85
|
||||
MD = 3D6D53537A012CAB00E91B0E029FC1656B82D0824B95D9453B7F0010F62F1C142B0837DE7D8E68BABD79D2C0D48341ED
|
||||
|
||||
j = 86
|
||||
MD = 90DC6CE48D2CFC0FF9E9EFE22273C9D83305B7CE6BE7B809B21F7274DC6AD38B021EA9EFCD44E0F23619C15225F6F67E
|
||||
|
||||
j = 87
|
||||
MD = CAAF1CED6B1883F2D128742AC41987646C3016CFBCA136120AC969273191DC3D7B22EE3454E02FA16A44A041A6676D97
|
||||
|
||||
j = 88
|
||||
MD = B44BE21EF24C547F2AA1543CB3AA844AE75A5D1D77FE78548DE4412DD79DD6A39F8BE657B2CAB9A6A9F549CE4EBD076E
|
||||
|
||||
j = 89
|
||||
MD = CF84FF37889C3B64AF608F8038FF24C4A98FC9BCE8A200E83ABD655503F5C82671DF9C70D55BB7C8312C5DDEFC2B8377
|
||||
|
||||
j = 90
|
||||
MD = 3F9F486AC25270BED4BFEEA4FD97DFD1BDD587DE405455AED376AF75F45D777DEBE3DFBE9CDAE6E2C84C06A4BA9A38FA
|
||||
|
||||
j = 91
|
||||
MD = 444BE098244BAAD4D7D5E99CE0F76927B1640C9D67D5377515C685F02DD53703D831DE18146E62AB031DA20F2B6EBA0E
|
||||
|
||||
j = 92
|
||||
MD = 8C7B448C5DEA7C269DAE0442961870E1F26A31833A4B654BE84E8F824456DF1D17B20DD24D030412D6CFCB474BB62A36
|
||||
|
||||
j = 93
|
||||
MD = 53E0EDCEBAB1CD018AD83F7E3694A1778958589CC69F7EAB31950A2FA9C0CB5237B05581097A24BACFB7E1A5D7E27D86
|
||||
|
||||
j = 94
|
||||
MD = 58903B4EC6EEB9D38BE5EA71D4FED45D218A7B5BB9FC635B4D71CC4012989FD692D2A142AC6E9EB0D47E4F712B7CCDE4
|
||||
|
||||
j = 95
|
||||
MD = D35CC06C79259A97B6DFD6D9AA130B81D1811F498E6EB2455DCC07F5A5EF391C8C63108E1F91C8BBEA0E6392E690A1F4
|
||||
|
||||
j = 96
|
||||
MD = DBFF5D2DB4DDFC4299C18DEE98149AE1BCA6A90C75FFB977942C1ADE182BD9D1646EF27586C0D37858BDC8DFACF38A28
|
||||
|
||||
j = 97
|
||||
MD = 567657A9C3C17D052471DB94C31650B44A50A6A0F5069F60C2C60FA73BF88860A1D342039F5FB1818387613AAE040B15
|
||||
|
||||
j = 98
|
||||
MD = C62AB16B90096741CBCA16A378FB9BCFA9BB8101C4D20BDE89AF54B74E8CD622E6CBA3E780C4D3456B546F8ADF17DA04
|
||||
|
||||
j = 99
|
||||
MD = 29D8452D74D5014B561843083BB8FAE5FCB8563ED15ADB1CEC22513682066C2F89D84237D04877BB9954B86C019E9E26
|
|
@ -0,0 +1,305 @@
|
|||
# MonteCarlo_512.txt
|
||||
# Algorithm Name: Skein
|
||||
# Principal Submitter: Bruce Schneier
|
||||
|
||||
Seed = 6CD4C0C5CB2CA2A0F1D1AECEBAC03B52E64EA03D1A1654372936545B92BBC5484A59DB74BB60F9C40CEB1A5AA35A6FAFE80349E14C253A4E8B1D77612DDD81ACE926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7
|
||||
|
||||
j = 0
|
||||
MD = EC418C07C5E3CC95A5FE2EFFA5DEEDF4334EFC6830C640272A0A77D7B11DCFCF3101265009BEF490F8093DFA28C172F3948F0C2350CAF95FCE9A855658489EAF
|
||||
|
||||
j = 1
|
||||
MD = 388C9AA70536218C380EC70C4165327046F8FFBBB8C19364840628770F861B05D486371497E4D01071C45C9277FC56F0871AA307917101F9926F75BAD3AFF72A
|
||||
|
||||
j = 2
|
||||
MD = 2F75ED15568A63902C198346C159E079469C546D787C47D40369C5C5822CBEC2AF091E0D0FBA80596A929698D37E377A571F0487EB509EF3A0752E4586858522
|
||||
|
||||
j = 3
|
||||
MD = 4797A6E72DB063070B84D071D17246C3F8623EFCD4AD599DEB35DEF3F53BC7658FDAEE6D29E87490D9585F34EE23CCF72C875368D84D0A0E8AD5547D9413FA56
|
||||
|
||||
j = 4
|
||||
MD = 1C126E91087471A517E757D41B85E8FFF70DE8236D1366DC9B0E129A1C90A39DDB193DCFE73042185CFDF29AE57D90FD78FA97107E1FC777DC38BD2853BF4B78
|
||||
|
||||
j = 5
|
||||
MD = 68EDE639AEAC6E1FD625A8BC82C663E853125885E7C8A58D17B23D35FD9A37203D451142085E8B94E3F5FD75E023413BDC2F18FFF2824D56708055EFB38D53D7
|
||||
|
||||
j = 6
|
||||
MD = 72DB47101AEE5D37B60EC3B2CA39F221EF0CE18BFCB63E50205FD2C42686B8B48DB5CAF3776A17978B840F31E30E5670860F80F1E1A07C506185EFAAA0038458
|
||||
|
||||
j = 7
|
||||
MD = 13E859E7494D38A2FAE0327008F45882DE9544A5CDAECDEB1627C6358483B35E26A1D963F7161B567472CA12F8F2C9C9AC3B0D49BC8E68CDA2DDBDED2AB5436E
|
||||
|
||||
j = 8
|
||||
MD = 67F6D5AD77DCB03AC436F1E74AE8A5B2C60F720FE5A05B3A2D7EAA920E5278CFEF2A69C3B2F0E5DFCCDF11374360481D33ED48D7AF35E5B13AFAE5724FAA87C0
|
||||
|
||||
j = 9
|
||||
MD = 0525BD329ABA20913616FCA4E35DDFD3DBA9C73E9648E5F3F7A76996EF270F47E76D59140C71A5611EFA4F36156642134CB09B18E3056484C834431D6E3901AC
|
||||
|
||||
j = 10
|
||||
MD = AD07046EB969B8177176A3458E2DCD7B9D1647450ABF510F1CC9B7EF1A09D8BF7FF115FBBA7DF66DCB760AA82F5B87722290AEB525E99C9B3F7F97E9B11B3A22
|
||||
|
||||
j = 11
|
||||
MD = E912AED915D83AFF329E44EA0AD3BC158C366097C49223254F1197D707F254115C69DDFFFEC3931507DBACCC7C9F10B82BB7AFE45F9F04BED868EEE7AA36F0F7
|
||||
|
||||
j = 12
|
||||
MD = 1DD2E5C07B6B236BC47A11D3AC6645D2BB4CF9BF86503546B29B74C9C6C61E1E02CAA149E518B04178EF959F6C66332205A3D2756BD23263ED7D3C4D2C060D20
|
||||
|
||||
j = 13
|
||||
MD = 55EE425B1D739665872D6DAF8FFCB64C0933A1ADA0954FAF61E19555EA5192CF100476BC6260D4446521D3DB4E503C29CB55A7B8C370506AE613AD2C61533129
|
||||
|
||||
j = 14
|
||||
MD = 12D9A6AE5D5C369811D332AF0ADB54A5CF424DE3808219A0E9E463DB2F23BB70D597A1BCBD20804CFE15DDBCCFF2959CB51D1252C8190449CACE35DE5B3AB756
|
||||
|
||||
j = 15
|
||||
MD = 7609F504D07FB024CCBEE1F92D886706142E8C757A54AA1E18E70C0DACB1AD7060A526CF78996EAA96B32EE9A59C687AF8EB97906AA2860027B70EE146769495
|
||||
|
||||
j = 16
|
||||
MD = D4AE2FB3CF5817617FFF2FEA99A36E80A65FB047A21D482565FBB1F41CC886C0BEB1028A0458647B029C569E12C36FF3FA7D09D5260AE603823F62CFF6352780
|
||||
|
||||
j = 17
|
||||
MD = 1D3C692D9EABC905A3B6A34BCD8667B984FE5D68BCE31E68749885DE5F1E9A1912E662FC6817522A324D6F05C48FA0F54C3FD484B6AE88DC768C33E16507BD5D
|
||||
|
||||
j = 18
|
||||
MD = E146C80FD1BC618A6B60F93CEAEE6836CF9E79CDB6C1F66DAC3BCDA4D57D70BD086E812EFBB7CD7B613BA5BA4CA86EC6C4B71C99B91744314EF9A74F3688666C
|
||||
|
||||
j = 19
|
||||
MD = 99AB5295B36E2F91252A39C31D510F04F4D4A2CB311E4CBCB54051243A21A4436AAC18E8D4531FB8EB1D46914E15953C88C5BC638D6195820E31753A61D78770
|
||||
|
||||
j = 20
|
||||
MD = 62E8ED5873DD771EBD5AEAEAF85F6CA1FB257A9FE2BC3C7AE5C48D7D1A008B9BCEFBCAEBE19120EE2D102B68B06249B09A0DF8A40D6694B73A865727F083E0FA
|
||||
|
||||
j = 21
|
||||
MD = 26894ADEDE8C561D18315D1F37A38C1CB56977071ADD2D044FAEA03BF9B327A58869D30CD18856E90174FEFB917FD280BDF00B26C80B724E3CDA460551695802
|
||||
|
||||
j = 22
|
||||
MD = A5C36414D720C916B9FA3E05B6D609E5058DA119B4CC67763D891BE576DBB4297259C1C14EAE994F9854BC18AD3733B4948E383772F94E9158A7BF2B12FBB49A
|
||||
|
||||
j = 23
|
||||
MD = BD7A23378A9EFCB449F0DA151F0053163F7C18362ECB4CAA6F99B83026FFCBCF26369528EB1441B1C9F9FECFA86E7F725FA0C15D1DB7575C0F0DD55E99816A48
|
||||
|
||||
j = 24
|
||||
MD = 85ED565AED4208AFCCF824AD413A4C5AEE50246944C7137686D534C10147D2D558BE8716FC9471CB38D5D97609F20C396FE8A08DEE6EA9585878633360C1048B
|
||||
|
||||
j = 25
|
||||
MD = C865A0BE0F09C6EDDCE05BE5B7D0D57E05CB5BF3CCC9E6D91B3C91D3F22FCAD7C45DE7D4E812862447CB8000386B7FC27FDFB69653C129114166EFCE72F3FD11
|
||||
|
||||
j = 26
|
||||
MD = 35E242870CCF3816745DDF6BA1E2C3B228ACBA579049A352411C7B7A404B264EBB9C4B44066F52042D7ABBC7FF9A431C11FE27DF683E078F06F6CF7A94249E95
|
||||
|
||||
j = 27
|
||||
MD = EEB7A1D13AF7ABA51D52FB0E161CB68CB9F1FE66EB0280468EC9BFAB2386AA9DE5831611C54508E13A84D75DF471BD82FF2A86B36972E0DDA0CD4E8064AB68F8
|
||||
|
||||
j = 28
|
||||
MD = 77156DF907C40DE0F2FDE4C2AAA93C25324355311087F56006204B9D2FEFB9451010453987E49E4ED53DD28F2664516448C7A3854C95C6F63AA4FA1153210634
|
||||
|
||||
j = 29
|
||||
MD = 6DF257011F331335D4F1C6E7DC2027A6351A074BC8C2660245CAD2B45961D23FD6DBF4DA718D5C71854E97B0F376D5D8C54C51F6488EB2E67CC04CDB262A86DC
|
||||
|
||||
j = 30
|
||||
MD = C234661DE3D68AF7DA80A6724148063790B5F0532566EC1E5F08CE98C65AA8438801C0ED7160C405F4BAA6A8859F47DC3A4CB5D3AA89397AC5A1B3E20E1F44CC
|
||||
|
||||
j = 31
|
||||
MD = 3F34DC01374E9476BB9730F6C7D9CAA3FCFF35835C787A638064815E0D8479FDC62A227D67633D5F6D268E168A159D9EF79A1E371C1DA1912A62A34FCCD30D3E
|
||||
|
||||
j = 32
|
||||
MD = 7EDBDB2406F05BC65270B798BE63C4091FF2C9CF11055AEE9D20E1774E707C1F53CD5C57E99E4AA9405062CE026708E88A659132D0A9225C23D655B7780FC354
|
||||
|
||||
j = 33
|
||||
MD = D78925ADDC1CF4EE65AEE04F8523BABC3AE5CF2E4A8246F0F39119D402C7B66CB5055DB5FCEB2EBDA664B8A2D122F04BF6D79325BC95D060C222DC47422246F4
|
||||
|
||||
j = 34
|
||||
MD = D3BD4F1C281EF93803F0688C8D278AE59EB46E4B8AC535DBBFACCE46C9E3D1E2F1D12C8EAA0A1A2DD738E924CB4B5272124F47C8F3A4A040638F57FEC8E40B8A
|
||||
|
||||
j = 35
|
||||
MD = 170E42AEF5584B725707F43CF3C208AFC0AA3D6D202DC507D79C172C4241E3F46C5021373A40BDB469B6AEA642C651841D4EE2AFE41CA9B04D6D731ED0A1040D
|
||||
|
||||
j = 36
|
||||
MD = 2F24E0CA023BCC910B7838A9472589E44962041E9D5ABFA740583C0B367E0623D3730FC2AFD505042C81275ACDEAA36B82B66991E53DCB90B749B38D2A9D79D0
|
||||
|
||||
j = 37
|
||||
MD = 4D994BEA0E1DAA4709A243776228582615B7A605C914B40DEDCD95F7F61AE53BE63CA3BB6C0228C553B062ED8AF3F9180823A360EA54D73934A2663B0E7FD734
|
||||
|
||||
j = 38
|
||||
MD = 17FFB03C61427EB240CE46215A5782D0F5B8F4CF133AA40BB3FBD97EEBED83BF79F1DD82D15ECB75FD61F82587E82D9E2B2BF08553E09BF5F0DDFDC7A2D3BB67
|
||||
|
||||
j = 39
|
||||
MD = 6AFA138D37268D9920BB7A43AD2F24E241193EE5944648D48A79E56F0F5944F6860B818DC4031107DF5C73487B771B22616AB85AA347E6059451C61C025CD09A
|
||||
|
||||
j = 40
|
||||
MD = 1B028F139E195EB54EA68B7BF0B31AB3301840170F718B47C15D99D5DD7B819C68119266967C151D943CBF0E0C024FB271BC0C33EC2463B2667489647E92CF04
|
||||
|
||||
j = 41
|
||||
MD = 55B31C43D14A5900B1113AA970DB652150F5F72E37D0596D38F4D9643EDC5C10B0E076A051F0B461AE787F3D8E2ADEFD5404425C4C45EE78DC9839AE82AD4A0C
|
||||
|
||||
j = 42
|
||||
MD = B8A4633712BBD6DFC1AA43A32E3A29D7A3D7A3342284D84ED53086B73468426ABA36426919E64B4ABC752B89949036C42F8ED1BC9727C51D8D41AE4BBAD1ED78
|
||||
|
||||
j = 43
|
||||
MD = 5B83BB3DC51D9A4FB957842B5ECFA2C58D2155CAEA5EBA9733F5D005EBDB4B50429C3CD35B144602520061B31D92CA04DE57E573A3E5825C3183550E19731986
|
||||
|
||||
j = 44
|
||||
MD = B67C80570434D724DF7B41BFEDB1CF269D5CAFFA2E33952E4E6096E4BE3CFCBF7A50D154178EFD9B006B075DD53643DA0AE0826E0AAF77B00E4E5240C0F40D57
|
||||
|
||||
j = 45
|
||||
MD = AAE886283183D69E37957DAD45945FF772572E30CCD294B6B0A7B4C8CC708F425FF6F465A15926B302F1A514C90DBA9EEA992ADA545C3AA2FB5687E8193EA74E
|
||||
|
||||
j = 46
|
||||
MD = 6F39C5E1E6A5E5B404801F0069FE1E767B97529056B9DC7A4D2C3B27BBF730AC1236E149702E2AA3B6D682110E83FF6D380034AE3A8C820E2BAAD965395D2711
|
||||
|
||||
j = 47
|
||||
MD = F65748BD2E2158C8566A7E7CF355E9561E4D1CF7E1D8B14D1015FA2D96F827E804AA46F4260877655B65091CA8F3ADB0FA022226CA1E2C323F053FDBE98F4515
|
||||
|
||||
j = 48
|
||||
MD = 5319AF583950618E9E428B303368A7CBE00543AF81A3DB4EDA01B7B1DE4E725BDE574F078DEAFDBB45B56C3C2C60929A6185B0B1229253BA9737F807F7C3E84E
|
||||
|
||||
j = 49
|
||||
MD = 2DB9A16DF6A98B24A03FFAB2F26F599A10FC0CDE5555F3EBF5B27359F64AF605772559284848A6771C4903CDD66AB2E0E202137EFB34D39C0C963A18F7EFC325
|
||||
|
||||
j = 50
|
||||
MD = 93015E6899FB97EA273A74DE030BF984664B9B7AF84A1A8376CAF19E5210C425191F09E14D59E681D9009689F0C91A94341408760DF7A1B6FC27712575495D53
|
||||
|
||||
j = 51
|
||||
MD = 421A5CB56EEA1D8F916AE7B4C82B17C00FB390A04662D8231F18FA6072A84D8414A64D5EC7A73CEBFEA94D14F93EAF33D449D066207C4DFAE2F13C725A2EDEC0
|
||||
|
||||
j = 52
|
||||
MD = 776E2FCDC1D7B34DADDF72490735154ADEBD2F969BD5D31AFF7C893BA3585B8A52B9025C43F62EC97FDA441C1494DEF299A1B784F2163A3FA6F28AD32099A82F
|
||||
|
||||
j = 53
|
||||
MD = 170FCC580113E77F4BF59AF4E17B644E2985F9E9133EA4AD278E540DA9B4A9BEE29207917A0BC56506E50B0D8DB7270EA4CDA4CFF2F684231CE17BB67EC013D9
|
||||
|
||||
j = 54
|
||||
MD = 3008AED63B8BBF7B69BE99048B90797D258CC091EB427EC3B2F20374878DAE9C79EBA789603024BD49F91C17F08D447871AE148C675F40FA3CCF7EBD168D8BFB
|
||||
|
||||
j = 55
|
||||
MD = 9B3C0C280971CF12DB32E20B6A0A1D95BCDDD56A938705ED417015BC65762E604091C401CD1CA0D2D523537CB9B1434A8326EADBF21F54E0497DE6D80D3192B3
|
||||
|
||||
j = 56
|
||||
MD = 7084D84785B780B9E0C9FDAAB33FC62E9ED288D4410BD74AB3E545F46B728F57191537CE659A6C550A7650D6C9B4DE6F35E21E1B913A9278CC79E902C156F150
|
||||
|
||||
j = 57
|
||||
MD = 078513DBEDF3919210059E0AC730150A584DA3DB4EF227D16F7AD98A118F4FD7BE0CCC5D4CE311C03EA5F8793E40A0A80B4AE0912054FE24263238D3E3B4FF83
|
||||
|
||||
j = 58
|
||||
MD = 3F73E7AE141F57AFB2DE0C746D7D5B2213363E8493C9F68979D2FFF0DBDC2EB3E8F7209D46D97E01A351DF3B0B5BAC96E0C979BCB8B2D4A68EBA2C9BEBA5B4AD
|
||||
|
||||
j = 59
|
||||
MD = 9B58CC64C8258B892B60044F60F5CE0BF4D0795DF83352A875B091D7D5484429C4A7A758D21355968B54A54B3C9151EE3E66398AC76A37323132ABCB7F8AF099
|
||||
|
||||
j = 60
|
||||
MD = 58DF4C05F4D5C03AE3D8718D27ADC3C09E34FEF8100DF8FB46A9816A86AAA4FE7E065CF6A05DAA3257D90CA26AFD2DD9F0F246F294E9E347A4A849D8A665FBF5
|
||||
|
||||
j = 61
|
||||
MD = 95597D96C52402511883F47C5C3D252C9066371B1D5A04B2D4E18892C6A9644A64678BE286561C988B1404DCF4FC1D28E85689D704E79C3DE031679DD636D178
|
||||
|
||||
j = 62
|
||||
MD = 95A8071AE7D0F9615E977889C67DF6DAACD2EB0919225B786374DB0EDC446F2AD92279E8E11FDCBE0DC5AEDF4167ED12C77598DF8F3B3D6F2EC74226F51E818E
|
||||
|
||||
j = 63
|
||||
MD = CE1F88920FDA40FDA4B58F0D008846AF54AEB094666A6463D353AB14B3475EDD5A94DEF3FB03587AC94CB4DE745EBF79078D6983915A91B5D380E553872141A6
|
||||
|
||||
j = 64
|
||||
MD = 69AED4CD0D795D2A1B2F0B15F4398E9D3DBC5092C48C08FC33D3C9630A7EE507D94CBA9F4CB8FF4A44B4D58BFF22CB5A831D195E44A31A9CD760FF8A27BF3E5A
|
||||
|
||||
j = 65
|
||||
MD = BC464C4F5E01904C9FA05258DB3E546791C96D9534056CFCA699722DDF5F94FE34338C3CEBCED427473943561EACEBD8F981CAE98494D5B30E595C415A3CFFF8
|
||||
|
||||
j = 66
|
||||
MD = B6F92BDC206BA2EE3811555128092D5D84D7E693933CFB746BCD579C243D47C72B972CC9570EC0291748FC52843E2779424C33B86A9D1D96C844A8A838ED078C
|
||||
|
||||
j = 67
|
||||
MD = CF3F12BC57D1BB56CC6A2F90504AD85ACC8E8FB3F89A353A269E9816E987A2643C0D4FBBB67011ADFCDE5E6837F6852B14B017A13952A2B111213A2E2E4F82E1
|
||||
|
||||
j = 68
|
||||
MD = 8EDD7AC2EEE83979FE0950757347B69EED648A92C6CC053F472B99C8B2ECEF11D4BFDB55D371BA321EB566B0502793518830ED1B9160167A3877850EC158E0B4
|
||||
|
||||
j = 69
|
||||
MD = 23AC1BAFCCB0A16C6650CBEFB6D6A34B45A6689016D4E50FC1A433844E032CEEE621B2A2F558CB449405A188F4A87FF237CD971C5A84ED5D9FE646FC0CE29BD6
|
||||
|
||||
j = 70
|
||||
MD = FC4673FFB72E69FF485EE24790D02BF6300F65F17E765EAF9F6A97D4AF68692F0E1F5524D582BBD70589952774D3697E2ED659FD5D025C299EACF8AFC9E8C88F
|
||||
|
||||
j = 71
|
||||
MD = 06256A19DD48435B24DA23864156DDCAF21B8BFCEBC18CC98AECC792D8BE361E27458D1B2789E81977B251AD7FB07B86A4290B97B3B3ED54310CB74ADBA6BB67
|
||||
|
||||
j = 72
|
||||
MD = B87A5DB09F82EB601E281D3B989BA763DB00E470CC1875F5413BC2CFD41B62D295B5B4C0B9DF59637C36C1CF4FD295EBD007C134D87D88EE1E2E0B6662869344
|
||||
|
||||
j = 73
|
||||
MD = A52E6CB9524780ED4102A08DD5D4952F934C96FC7C9C914CE4101E7556460D398AFE64A423CF1447C52E109277DB45BF5F3EC1BF0474270D16408B0C92DB9BB2
|
||||
|
||||
j = 74
|
||||
MD = 4EF596DABF4E903928C8C73BEAA4764675FFCB5AAC3E10389DF5AC9749A6C13596AA751BE00DD7B663ECC17C0C786CE017D35D9DB66A0EE42474379176A882AD
|
||||
|
||||
j = 75
|
||||
MD = 048560D1B7B60C4382AB251427D3F7304A7168B9A8560FF9A774EA5D3F811B461FFC94B7A5AA8D89A0E61FB3349B1D7A2FE428FBD8662A9037B731BBD3CE9177
|
||||
|
||||
j = 76
|
||||
MD = 99E291BE434C4B5DE8FF36FAD47F6080413DA87772DA0DF493562243628D5FCBF984274B6C4F3D34F25F0E82CBA07DCE76697E4AF812BE48966DDCD37C63ACD4
|
||||
|
||||
j = 77
|
||||
MD = 90722E32B7691EED6FA6B757E721938FF57ECE74DBFA47B5D525DC10C49BD5F7DD7F7DA0C82A68F8916FE9A40B9F8464C46020A0ED7DBE2DE1F4BC5AC36481B6
|
||||
|
||||
j = 78
|
||||
MD = 31CBE0CC0E5CB2F63696E11D894D4C9FEB7325E3A2C51E9014936576C5C4B9C7E3789256BEE339AC8C4D548D83BC07DF1AC30FCC5F89AAA9E3D05D32340F30C0
|
||||
|
||||
j = 79
|
||||
MD = A4EA730705548FC8EF5A988950B39BBC6F6227A3C30E57182F6FFC021C8A98CE6B7234EBF73DFD9262BA600DC3C424AEAFB6860272EA90E4C47C15D358FAC708
|
||||
|
||||
j = 80
|
||||
MD = 17D00E2738E00AC4DB04AB70174A5A7A6516FE403C450FE69D0EA230F58D372E7F86D146700BA855FE84F64A467488F309C5B824647FB50DF1C1E4105E028CC6
|
||||
|
||||
j = 81
|
||||
MD = 33100A2EBDF2455F34B768D147FCD4E4D93EAE2184B774AFD99E5DA881FB4E756220D6263070FED13E38D670493FE8759D8ECFDBFA931CCD4F30BC0072626B09
|
||||
|
||||
j = 82
|
||||
MD = 75DDE2F6D69C482DBEFA18A7469144B275F1DBCF3323B25F725893D457FEDC9EB8E88B1BA8D82A90306E14FD02CC04A7CDCC01DDD8F23C925A40CD0AE8696BAA
|
||||
|
||||
j = 83
|
||||
MD = 7BDC6BAEC9562440D519277E928671B588CC4789E891FE47C474C96E05D2066DA6A89F6810FA386C79CF60133FC04697388AE1C2440BB68E6F82C2D9305B68C4
|
||||
|
||||
j = 84
|
||||
MD = ED33A42ABCB1E74624308A9E3732425B3510D4C13BFBAB7157B0B5C8D5470C24BEEAA1F161F3B83779A17E34C2A409359A2CE24C9D03E0261883B18ADD536F16
|
||||
|
||||
j = 85
|
||||
MD = AB93F4D84830280A0E95F00B90360D626A548601FB9127471BF16841DCF9F9CBF23E31E0A38190F0EEBCEB71F5F11FAB3EE3632FC8001F58BA9D28013687D249
|
||||
|
||||
j = 86
|
||||
MD = 4AF0E0D295FBFDBABBB4FCB80F38F578CABD24EF1993A30E6FBFE673FE4FA08E4F17FA902ECDE9D40BE91B65A0FF70882B1D402963C98AF619EB40B6F4569038
|
||||
|
||||
j = 87
|
||||
MD = 35CDDFBF6AAA8C3D5386BBE88EDBE48CB3ED898760EC64BCD0BEB099B7659FFF7F3EE35A07859EE202257D896A7FB018B3CB9499AC361BB3DB67C00AE2B811DF
|
||||
|
||||
j = 88
|
||||
MD = 48DD48AD08C3BE71979BF0A3CBE17079B8116140DB49EED2A5B3C761517039F51974E5B37D6420892B2E64C9962B86F28C91513F748E83629F176DB6895B134F
|
||||
|
||||
j = 89
|
||||
MD = C71D16E07539D5FC374FE8B506A2A2EA3CF5CBCEA59348D7E065B8A22BAF3A89E892DC0F60BC12AB9903DC92CB16F400115774BD54138E3909F94D92525A35E9
|
||||
|
||||
j = 90
|
||||
MD = 75A65A2AD76CA0F1B1BE02D458291CA0B332FEBD0920FEEAB47E447ACCBC3AFF00D112C693B1F131F606B76FC2C8DA18C34E949651A4108C58267E6B5FF146B6
|
||||
|
||||
j = 91
|
||||
MD = 0DC348DD29D892198634FA6AC0445EB0340464326380D80D4F5933588387208C6BC16D09E744F25D2E0A198E138B7EDDFC8FCF834F6F89844D5F55AB44F8CD0D
|
||||
|
||||
j = 92
|
||||
MD = 73B8D49492A304C2C16C0120AEA84363BAB620E956A55F6114BC6A515A345CF33319F3768B277E0469F5E11FE7A2E0744A0927B3EB06FF899D5F85AC4D0058B0
|
||||
|
||||
j = 93
|
||||
MD = 7FED2C732CB100E48C2723823664465980E9CC8D07B1D76EC6DEF14F034591983CCAFE55CAFDAD796FB7E31430453E910F30A4D8013F46BCB987CC67EB5AAC7A
|
||||
|
||||
j = 94
|
||||
MD = CE5502EFB6933A3D4A9FE085FD2ABBCEC240B9FE2F2C373A08318AEDE67F6E9A09BF852D4128987F0FE2A749B819C3D5F4DB259B08D5E28036B728B4A0438029
|
||||
|
||||
j = 95
|
||||
MD = EA58764055274029E71C95A18EC62A65DDD1E0075F6D3155CF78F47A4E5DC1DFC711A90135B199EEB8E46B0C697AA777B3A13A7B70F5413C69DA8A7D1C1D0D49
|
||||
|
||||
j = 96
|
||||
MD = D6BF501DE3D31139796F06FECBB402795D73BEAF7574DA02812E136A292D7595AC8602552D02B67680804BA7729A68BC011ADBBD191DF182ED24C6FE9AC66F29
|
||||
|
||||
j = 97
|
||||
MD = BE0940462D0744545B5C40264F7DC7B1CC34BE73654FD201E11ED43F75D4E36979E2A1D74F24ED27CBADE7C6259BA42FF8E8BF920665D6B070B5D33DE5DE1A08
|
||||
|
||||
j = 98
|
||||
MD = 8A99016CEB72D263C052258602B936EEAC3207919FDCABA6C00645C76439966D3D5B55421DEB7A15D52448F9B93793544D0F2379AA788E1DE586245D55539CB5
|
||||
|
||||
j = 99
|
||||
MD = D6EBD732D8F5E7B20A87E4C19A3BC8ABDA3581318D293D5B58C733B58920DE8FE29DABD2E36EDF1A07532C6B615FDDBDCC5BD058D50DAAAAEB7771641FD58E12
|
|
@ -0,0 +1,305 @@
|
|||
# MonteCarlo_768.txt
|
||||
# Algorithm Name: Skein
|
||||
# Principal Submitter: Bruce Schneier
|
||||
|
||||
Seed = 6CD4C0C5CB2CA2A0F1D1AECEBAC03B52E64EA03D1A1654372936545B92BBC5484A59DB74BB60F9C40CEB1A5AA35A6FAFE80349E14C253A4E8B1D77612DDD81ACE926AE8B0AF6E53176DBFFCC2A6B88C6BD765F939D3D178A9BDE9EF3AA131C61E31C1E42CDFAF4B4DCDE579A37E150EFBEF5555B4C1CB40439D835A724E2FAE7
|
||||
|
||||
j = 0
|
||||
MD = E289EBDCEC5CE64CBA68A559BEC0FCD2422B60270EABB08B1A9EE51A5965903204DFDECAA6D14563B43BD9A66902532763EE3DBFDED0A423CE6E558B86F21ADF52248F7B5E31B136F5A8B7ABFBAFDC664F3D86DAB388DC72D458AA678EB5B3ED
|
||||
|
||||
j = 1
|
||||
MD = B8C9A24C6A318C7CF3C18F96E236078E6D30000D3A7AE421BA80EC7CBD5992B19C65A8718425158FEBC87E04579188FEA84620583643C58B37F43216183B14998522DB608AE376BA003967C8509AE9760E101A04815BE49E01817079899369F2
|
||||
|
||||
j = 2
|
||||
MD = 894E76042EE46B75EB079C7FC6B47E182AD22607AA171B7F800548B8F2E924B6EC10A1027FDFEE3DAE075A6D4ABFA9F7DF083AEA4DF929B59F1217CBF2402CE98BE84B4500B08B0CCCEC83C3DBC7E15E635CA8DA9A5E81BCF7D01900DA2AFF8F
|
||||
|
||||
j = 3
|
||||
MD = 1F9AD22468F5C6ABC465E2978AC21AB3DB6110155DBD55DD2E599A57EC650FE90040276BA44E8DE83CAE587017AB4F211A1CD19794292E566713DDA3C35883818A08A79CE5DF5219106121ACD5609EEDE28A72CF48E2C062398C540E7D41D7DC
|
||||
|
||||
j = 4
|
||||
MD = 041CD0B79768B430316F49FE9DD51B659E33840CECD90EF98DEAE0AED386FAE28D10E2F42E4C8F7A15A239823922BE1664379790D3CA19AFD7D7C3BEAAD5884364AF4CF08076B9C29A6424DDF6A1F0AF1F41053EA4EECB09D3F8B228B908DD42
|
||||
|
||||
j = 5
|
||||
MD = B249A3A6EBB5F8005CCBC1F33FDD2999C3469C22E058801B7CEDBEA4CA139AFF21372DA4EC0FC0C6AC5F840CE57B957CA93F3FC04F6DB677A1E4AD4058033A9AAE70B425AB78B71AF62B5AE759672EFC18824F920495F718D9844C6D48E0FAD6
|
||||
|
||||
j = 6
|
||||
MD = EBBE8D7EF48CD7516379A08EEA9BA08E130855388A8BC7F3BB2F9F7F096DEED9401659AD62A09B4C44FE03688C9427A0B2689BBCD74A76BF7A9D4E79367795B24DB5C03FD5449D69E5E273FF8E74C1F0ECA4BA2C36456C134B1594EDE20604F1
|
||||
|
||||
j = 7
|
||||
MD = 6B9E5D2DA4E56F536CDDA71E48A179A2EDB5F9A3D83E39691AB6FCCA11CD944CEAD212F1CF2B386E6B2EFCA184E875C17B725CD1010A0BB4D1E8B898390948B19CC41AF968C037239FA33A6E4004DEA8ABD91DCE3CA9805ED0866405F83FEBFD
|
||||
|
||||
j = 8
|
||||
MD = ECBCACFDE52EB4FFBD795B6DD15F4ADDEBFB14E1D431C32E716038C93CFC8EB00C5B5EA88002BC617E38149B602F3F1897096CAF1E39B352CEB26D9E97EC5E8DAA830814668D7941761F407B4D5BEDA0729D490D81C56F5C0FAB40D7B9B266E7
|
||||
|
||||
j = 9
|
||||
MD = A8377004E0B0C3E9DF45BF69E5E3E71CD39196833CDCED6917AFDCE37111FE3BBDAE07F184F36A0C3A1123A092AD69FE70265F1907779C99B4828C99A922E610201CBC127A2060208E46B9ED9A09E04B0CFD9E9E5D954C69F3E6FA395C0AC9D6
|
||||
|
||||
j = 10
|
||||
MD = A8193AB926BF08C387ED10E94FA6AC5733BA5845D9EE710CCC8C1F634BA99E79729AE29B20ED531D6E88C710E9B9151D124DE415DCFE9883C6CD5992408199F3EE742FDAAF0D138468E96EB07949F0A09B2461807FF0A4388265042C6452145C
|
||||
|
||||
j = 11
|
||||
MD = BE684496CACBC315678FD46CB3DC9EEC91156374FC8675E2DCFD311F2242DFBCFC1F24CFC407CD126E2001A42A3086C92EA42D3169DCAB1880EC63B81B4393F5D230B7637A486DE86B937EE94344512A8E59C2A56D8D9A947D2B6942A5D16265
|
||||
|
||||
j = 12
|
||||
MD = 9F57A147192EC3E87ADED2DEF0C0196A95EA4AE896D41BD285A713DDF75979E68AF73A2FAC812A52552C7A77C2BCA408A0865EEF36CCDA8D53F3231F774A81F84199E431FA579038A6C332EB8145131FAC724E33CF1DCFF1D37B3AB4E9CE8A8E
|
||||
|
||||
j = 13
|
||||
MD = 5CC8E76601C5E379A9928318B9ABF9DF45069B0116A1E9B80AF09D51B94D6BA10CE44C92918D9C078DC892A55982FBDE393966D002BFDE3769706020F80C2B72584BF50F6AC13A4AB48F7C1053BE91C1F177B2ABA873DEE791D20020F888C0A3
|
||||
|
||||
j = 14
|
||||
MD = DEA3AC7D16228FF0EAFD7DC292B01C1D438B8A5EA8073243369DCCE48A4407AE8CD43D0C6F45AC14C2FDC1E735A9745DBE5E8295B7BAADD4B514406115D4352B457D55C0729B0C63ECC46998919F8A4AE5A34B754660A72C0DD97AB38EB8D186
|
||||
|
||||
j = 15
|
||||
MD = CBB3BF27BE10E563C1CEDB1BD3A535EB1DC8F93282F7BC08A514C6B576C6FC6A20567E528C615E376BFF344B5BF808FBDBFC23672DEDDA779D241ACF67D4333E79A1C75D0CB0A919086C714C1ABEFB4E5A8446947C3CA8FD8DE623E814141E5F
|
||||
|
||||
j = 16
|
||||
MD = 578613D0A621F11F8DC28517E446508B6A7AE67790E1A15BFBB4214E45391ACC0A5A49AA1188DDBFA6DBD5A36365DDC1555C002857D8C31768A6052B79218C761D47F4B11E3D76D128FA8C461A424100E25D46F1FFB69E14D472AB22DD182A3A
|
||||
|
||||
j = 17
|
||||
MD = 90154B56B148C67F87A8CB49FBD5E7AE0E3DA0C2F37AF20C922D53EE6BF55C3B9A2892F05DF1025DC06E2F04E592CD337FDD0DB938D3439AA374572A19A1C66B66BD89A37BF5EEF8C51BEDB0917184006F64B3536410AACC906ACE2AFBFD72BA
|
||||
|
||||
j = 18
|
||||
MD = EC64E59BE9AE6221884A3B69A4D9CA258EF23AFE45345C8D941E09D2D0C391A58FD1D95DD796A9009EB2AE5BE955D9349CC1F52FEE309AFB792C0FF6B27472085628848BFA6FADA9329A03C016614B3FD559755C99F28C0975192EC7E313F718
|
||||
|
||||
j = 19
|
||||
MD = 71EFDE1836BDFF14FD5B13A338EC5304D36A8E11678DE290A5F6E2B2057726E3CE18570E2F65AF416662BE80610FF5EB79002FD905B9E92BA01847ADAA98E40477AD6E8B0BA0528A8BD9441B1E479BE23B51DE7EFE86D2B649DD11CA804D4BE9
|
||||
|
||||
j = 20
|
||||
MD = FD0FE03BDC1142CEA1E0A0762A95BCA27E75C3B1709E01A8674629831A00788804059DAF07AD97322F06F659366D70700CDA2DF3951AE0A03C443E4AA8460FB1DA1071B544C431417C3B4D6434EAA6CB06F7CEC7FEA6948A9868CBF2809004E6
|
||||
|
||||
j = 21
|
||||
MD = 4B37B06334C0E080CF4DA4E8DEDA36F2FE72DC28538F11CEC3BCEE1895B3413733DAB5D95CFFE9E10BA2CCCE03E9728D1EC407DC05790A54E4A1710E0DF5508FE12FD1D20C0BC4B7AA319EF25E7CC92C72D762B43EC7C02BDC5A0BDB55B38E14
|
||||
|
||||
j = 22
|
||||
MD = 0CF247FE379404C23AB11D8B5BFCF7DCD017E5CC208E89D31208012A38FE5F6B717590EE6D7B9807C1BDDCC311ED13B29A29C9CC1E9E5B69E991F923B65A0B1E3BC69AFA78FC0D0482A803F2F595E402CA7C7A930DA778504A83FD5C0B0478BE
|
||||
|
||||
j = 23
|
||||
MD = 77E99864DDDBA44510DE1092445A533E690A8CD704BC4C71687F7ED12494C34D197D89ECF5FEAAAE214BE68E843C256DBAC43D1356670D1FF6C0666C63D22223C244A9DD7F2F07BC9D9E544398D50E5C0894F8E41BAADCCA71AF85041214B3A5
|
||||
|
||||
j = 24
|
||||
MD = B27C476F71223B98A9B8F0A840370E589BB04D2BE35917E2C0FCA4759E58D8C417ABB32586890BE2A27082A3BD7A7704C9ADA0CD40C1E752CA581DE548892EE1F3332ED93EEDC8456960CCBEBF5F0F79C7ED3EA99953BB3D64A64BA9E9061773
|
||||
|
||||
j = 25
|
||||
MD = 890D766D57C1F2723E6EFE0FEB773A87B3A8B637FCEB87DA90A325F93704DA65E2F6E11E35F667CA390138E652F806042FF0EB6FC8DE6F397867EEA92B8D4CF75957590AB714A81431ABDACCA4ADAE341746E5B1C8111404489F98702994AA12
|
||||
|
||||
j = 26
|
||||
MD = 2AE3D4AE1EDE820A6DA5B9025D0A587F9F3C6348CA123C810C93968E505173058B1E7A96491DFA2579AD15C6CC179E536C13E2E6863143DA2558D976C9330899B6F0ABB80B04667098E35DD89519F61ABEC430977413479FD16B2874D9D78A8F
|
||||
|
||||
j = 27
|
||||
MD = 8CDFD682D69F5F139DA9D893C65C9EFDEAD93B47F5C7E67CEBF2CB2705E2FFBBE4F0D8712BB51428BF0CCA908A0361F1D8F8594059BE7A9285E7768B1A3132F6661A443F6D61595EA8612FFE6582F4DB8AC22CDFF9A90D4F636BE6C219C22A37
|
||||
|
||||
j = 28
|
||||
MD = 687F11BD88D0218D0AC63C6907F03C5C5991E1E0779B809BDC6F5A54FC6E39E731C19CF93FD544CA08FDFA6F267F1F80DFD3C614D9447E87A4935298FDEF605B95740A2B952D773E0C2FDED53F1E73F406ED0C97166A615D9A72B78111020F85
|
||||
|
||||
j = 29
|
||||
MD = 99F17342A95A190C053EB2816777E4330FD8070FFB37EB720A9B6739C7FDD0BE362EA0578EE74571753E8E6560F7B48B9FB776C03C9CBD28DBF0DDFD4471CD638ABD905FE1F66A67BF286D1AA88E4266873EE97B21852CDA863A6851609E0653
|
||||
|
||||
j = 30
|
||||
MD = 9BA9B25D9F12FF58EC5734CF11AAD6185EEB19CBD1B9592F2C2B0738E4161460A46CE964DB4B472D6977DF135A197EEF0E3CA426CF119F55E378E7994E5C3222D81B1599DDEC0712F5A616C6879B6C7B4AC5304DDB9FDD2B59C2DD2B16D63D98
|
||||
|
||||
j = 31
|
||||
MD = 300899203AB6D20EEF36500BF33F2B09B5F9243F4ECB0FF218AC94160CD578FB3A2276310E77DA3AB7448A51CA6AE7A086962A69569505306965D3CAA4199FE29E6030272EAF5D8D958E6F4B3C7A7BF6FD0BD260B7E09C5EF8CD5EF209C8B2EB
|
||||
|
||||
j = 32
|
||||
MD = 57784E4B108F91B48230846A00922840E7D036C52ED4CA19C419CD18CEE3294400C860616F406ACDD92C9445BB2C95FC92B57461BF20F0B4E5897E94B9F01B8ACBA55857791B3C5ED1204BCC2B5776270225B84127112113EEBD4E49F6DAA21D
|
||||
|
||||
j = 33
|
||||
MD = 4640647063EFC975D9F0FD95DB1394DF5912948C63504165ED2133CF070E251839EC4F33BB72A4BC7339CB872DF1EF64C8118682CA0B0FBB10C32D6AA9A338DBFEBA1E33D8783B23F80EFAA134A4C486ACD8BC448A1646570C51BAA1A9371418
|
||||
|
||||
j = 34
|
||||
MD = CF0C665C1AC03607F252866880F6B95340D729EB7A5E08C32DBEF1A3F2C34E97078924AB2F5062187BADE6B571817905BC9318470A097230670E400021DD7F1D2EB3A116A4B15B014EE1FBBE2C80E0888F1C5BECF3AFE7BD905EFB8988A9A749
|
||||
|
||||
j = 35
|
||||
MD = CA69B8DD931611FE27DC2505B5D0F58C05465CCFC1F96724B9C5EE1EEAACE1D46906C0571221C602B2B69EA21909E49F8CC17EF346A3483EFFC6672A475EC38ACD0346142E35E5381C8C4714354FE1EC74061082937FF8D8DE07C255C547C5CB
|
||||
|
||||
j = 36
|
||||
MD = 3E1858E3AC9A2712EDDCFBADD67E68887FC82219868980A88423FBD90749C8F203A136ECDEF11CCF2CF23949FC3FC1CBB0EDB6A1B78E179CD8C0BFD2C63194C22EDC3218788F9C0B67055569FA82723DE494B18551AD4EFB7A7AD79A9B29B62F
|
||||
|
||||
j = 37
|
||||
MD = 72228161B1C8098FA941A0420E7A3C026F82F6A3D91B00AD85239B9FA72A4059C85902FA82FEC7D0629DAB404168DC1E7C919661E317ECFA4B1CCCEFA447077CEF00D8E1DBC93472E7AFD0D464FE06FF1F7DF9FDF899CDE0277A0C31D0B066E8
|
||||
|
||||
j = 38
|
||||
MD = 26C50CC1063ADB40FBE2240B5A1E4DC8DF88F0D21479AEF21B82213E166C3E219488120C6B01654359DECEBD790F7EC61FF868E5A0616652EA5A55F5044E791EC51E6C62A63EC011C5405652501F031B34587EA5F85B5F791E0F60E5E254F2AC
|
||||
|
||||
j = 39
|
||||
MD = E169A3FC1D546E77C2E0EAF8D184204F4F6AE0A3D24E3C999E363C9ABD3A3183800862783BAC1509110CB7FDD52B21B02CAE84FA6C64E9FDB223CFA6AF608F60A51110492509914BFADC44DCF5F8C09D25E560D115B074B2CACD3244A1A6D040
|
||||
|
||||
j = 40
|
||||
MD = 2235CED156EE9D78ED0261A0088786627091197C151EF9395BDB0E71C840AAC97E6E26467A86B9D26C3EB006E647A8B6CD7F1EC80E82A1CD65B482EC8EADD72D77AC57F4305400DDB902AFFABB8857B711C030A8F88BDD45F4871AB304C5B881
|
||||
|
||||
j = 41
|
||||
MD = 52258CDF80E0AA955A7C987A70347649C72D12CBE4A9C923AA10415B69EFF76C5FBE0B3C3C38EB3C571D5CD69B192E3F7F43560E21F1C16A0A997046CBA910AF9C596177FA41925C999F9A17262AC3E13CB3BC0CE0FE8724763F6F6FF18644C0
|
||||
|
||||
j = 42
|
||||
MD = 3867C3C5FB86A1F2BF00A72F9B9EE0D6452A00E3B8645A4F3AD5129790ACEBCB3FC9BCE9B4DE3B5D834F6778769172D729F2C2F86B5B146CBE4B2F3C6A85BE06A578101837328D5B7AD367364B0FE8E5EF386D8580F47AEE1D2C56FC1F7E63DA
|
||||
|
||||
j = 43
|
||||
MD = 2F5B7F942A80C690CA18C0A42293BE471C398FC692F249654768BF939B549499222E2E320FBD48529A3AFBE1378230F191F56976F037D89B6E836B760222D83467A0685676B052EF1964043DA7B2A1EEF98845EFA4950E2F8902CA516271E793
|
||||
|
||||
j = 44
|
||||
MD = 61E369598713A9CCA1777D7230C8B0EA3413CF2827332EF64EB9004B5D67675B365BAD2F77F2CA3838F534D62637AEC5BADBACA9B7E4E9FBF11549CDA12C0C0ACB89507445A4CDD64C9D0A785E9083AB457512BD8C6927C5338EDE77EDA6B2C9
|
||||
|
||||
j = 45
|
||||
MD = 4CBF7C3FB744C11665D3E4455EDCA7BB45EE391C6BC82A4BF36757DE762426D48149452E22E2935CA37D153B585D673D07CA41F7B41A5C5BBFF14499DD7437D5CE24C33B792FF5EA80DF709F21ADBD2663928AF0D7850EFF98450E580C6A6A03
|
||||
|
||||
j = 46
|
||||
MD = CDEF212FDFED0A61053621BFECC925EBBABADD4EA7BC1559F45BCBAB91BF82DD72053CE90C112FCE95DD9999BEA22F267114B623CC269D3A422A1BB80E1304BFA8DF539C6DFE6744898584C3E7140580A212C67B7B58848D7F93F13C714B2E70
|
||||
|
||||
j = 47
|
||||
MD = 27BE42A730FB8C4452FB206984A6A71FE1A0F52F4BB4342AA50ECAE54DD500615CE0A8DF748111E6629CD9A6C69F306FADE1A1C1AD99F6B394735D11D2C0228C04E72E00F892364E01F0C8194D383FA01E6119F4C23E06EFA38278E692014D73
|
||||
|
||||
j = 48
|
||||
MD = 6C678BB99E179C60CABCB0A8686A9EF72C21705EFC1A7DE12435CF434259ACBB47E3C3DE1E5C89005AA50225D0CD3FAF8EDA074C8423356F239E4E32DAD61C055A9B10C5BDECA2682B3E680F2BEC8245B0ADB88B7CF460A0154B549363AF14BB
|
||||
|
||||
j = 49
|
||||
MD = 8FDE04EA6BB7B558C9AD9AB161DA54DE525014990210EF105CBC78FE7FAE65310468ED5641B327466F6139234277DF795E739F6AF97009C53FCDA19426BCAFDB35B6C9E21F8DED7FF23735BCFED757ABA660C2949B62275653FEBB81E1A8EE4D
|
||||
|
||||
j = 50
|
||||
MD = 951117903F1E70B9A9EB4E58E4F0E7B732BDB7CD93CDA0B2B5EABA7069CBDADC824B1B03CC045CE7C2C8C09059D63239F1629422DCC916A08A0A5F250E4F6BC009773F4E3326261F16D9D94821970886D119B5A79A278148E460EEDA44126339
|
||||
|
||||
j = 51
|
||||
MD = 741C962E306AFE40A5F324FB696B8511AEF98474C7A2E08B24EA476F3129A6918383F6DBF22C374A580B50829F7F083B043D3975777D957B1537BFAD49C389468B4CC204703590230ECFB330943FBB383D94E21145EC31D7FF6C5EBB59A06D95
|
||||
|
||||
j = 52
|
||||
MD = 95432097DDB78C8C22B1FBA57C92780278896A20D9347FFE06122EEEEF876DC6F4C14517F494E76A41FB8DF532F029EBBDD4C0ECA632EBF036B5984F4C6C35765CDD42722D4A8E12D878ED6414315FAF515E0B10C91E33293781B2DE68DD8CC0
|
||||
|
||||
j = 53
|
||||
MD = 459807CB429722769ABBC0DFC8F1AD439EA5DEA2A72DB31C8318E9497C0EE65B7556D65291D4C9C5CD52319ABA01C254907086B0B98F8B2E114BA7E165EF7AF365D4283407DEC1E939CDCC7E3BEE7E3BDB6655531F196944851C346F09A22C24
|
||||
|
||||
j = 54
|
||||
MD = 18EE970107222E909FD65D8A3C4C75CD964AACECB21E1652AC0E21E6D5E5B1143E797BF8125169AF44FF5589C40C14966674D263368481189C97452EF60C437FF8502A09D9BC0766BE6FC27FBED059AE98CA805F3B2C108368D9C519F0BF56E1
|
||||
|
||||
j = 55
|
||||
MD = F8823867EA1C055FB2F56CE7AFA847F522F80F1ED32E4D5BF1A426BB0D5F55B18E832C5FC9B691D4F695C4F5B0417AAA1E84DE2F8C10CB095D62E07BD72098A9AA164212DD42302AD89D9BAEB4C27F956A63D15361B91CD862297B82355B9B00
|
||||
|
||||
j = 56
|
||||
MD = 836C26E5B176811F48B683628671172BADF80EDD494DFB792626EEE42BDB9261351284945CA08785BA399C1514E58A6ECE8FFD14C46EAC46009C44CA7540962D775667D505A3508EDAD9215C41380851DDD6A0A083DF6A28FBC9D5D824887E12
|
||||
|
||||
j = 57
|
||||
MD = 0A378607CE110B7AA9B5484A0A3270CDA9DCA6E273B0D14228935BA75154E515B4C4F0E48128A73669742A2F59B02A6596961518EF3019D69BD3C99F3F92E8D1605B4614E7BCFB636DE3196FBB1FBAA29A4BFD7A316A66C945098988FC85A279
|
||||
|
||||
j = 58
|
||||
MD = 3B1B09221F53532F9035E70DF6A187B8ABC7CAA65A370E1FD34702F1F8ED31FC27BDB53F7D1DDDAB27329578D16C9D6D7BFE6CFF40E881A934FA6ADA8D8623295855C8645ABF3B23E7385C01C3C43AF4ECB455F15FFE14B9282B94F621691D7D
|
||||
|
||||
j = 59
|
||||
MD = C07DBD4F816883944AE56113D9FE3BDDC4A4E486D1074A08279AE01C9CBC0AA43883BCBD2B5D2750FD322D0E0DDE11F543A031A51DBD08EBBE5B842519C39CAFCDA560F8EEAB9CEBC7459193BD53151D53430D9C430F82EF916BBB5B4058BE4D
|
||||
|
||||
j = 60
|
||||
MD = E0DA7EDF07E3F54EF1EC82E2A4EDDD6069EF96C01409F0D17DF42889880406DE4EC373660D901665CE8796814AB59C7124F522EDD18E5AB5E764F654A10E12983A70EDCDB4D6EBA80B5E13D4618779B2FCCC8A2B2BFC965D5673E5003757DD06
|
||||
|
||||
j = 61
|
||||
MD = 2CB680EB3D2786B46451E48AD113F37B33A15488188DAAE2EAF0CBD45304869F41654C9BAB16F1AD6E66A6437E3B58E10DA4B4F41713D69EC08FCF456BDF4F8955DD3F227E624555FB480C621B035EF902FB9CD38D53DE54923E305C9C460A04
|
||||
|
||||
j = 62
|
||||
MD = 7754AE818AD37529F13275A42BF205B86F9BCFD35B9D74E258FFCE6A75FCFED80267021CDC9B3F395C253A705F4F0B01442228471D52A8519B664F51C984B6916DF7EB74A9FA2FD0CE9228451B532193787C3D48EBA1A3F9B626B0590FE1A3BF
|
||||
|
||||
j = 63
|
||||
MD = 5E139E10A608FE1F20CE3DEA1F41D9669DA4CB203C96B5ECD6B3B79FD5F4F12D9038E94C9042F1D0992E91FAF1ACB7AE47BAFB254CA2BD11F9AE4E694E99ED0F3A9EBE1F283A3070BAF30A4363D8FFD84B5E644F142E181B0F2AA1756358C7CE
|
||||
|
||||
j = 64
|
||||
MD = 4AAA131CC20AEFE47A401232F57D3E2EC2F5EFA2B08F3A3A04E87D6ECB598F33965FBB2F81306F45A88A415D5B01EC4DB5E3E05FFCE0F3D0883A2FBDAD8B783D261453E62C76D8603C73E0CC3D214EF21AE0DCEE366138535993B25B564F946F
|
||||
|
||||
j = 65
|
||||
MD = FE7E2C3B83A73DAD7D6F247C96F0493FCD0A09EB01FF2308114BA4B5D9211C756453B30D53B15E70C719B3A180F71D7708796B6E2F76D424F2277D7F7BDCCEF1793FFED029F9D0C62AF4A4EF49544877D6646490CB2DFA05CB15B87F73E43B51
|
||||
|
||||
j = 66
|
||||
MD = BB52354FBFB53CD420CBAA100C312235FE8CA09C7C8870A4C307F76FEEE4960B1372155E0EC60CC3393B92F2630A2F33BF302E56C05AB70132DE513174CAC06D12FF2C4266B8F671EFAA9399992129CBD993840B653BFCA29782E14200C6FFDE
|
||||
|
||||
j = 67
|
||||
MD = BD749B9F9929D6ED0159F6ECA4E8DE392A407B5284BEE68847D36BFD481FD30DAA295928423B719EECBAAEC836C7369D1A597BE38D0D7C6A70021433F4DD8F9CB104F6C9E10FD91B6A2EE9DAC6A6B4229BF150423E981F33EF8F318D2B097B30
|
||||
|
||||
j = 68
|
||||
MD = EFE3545BC18AEF08963CA6D3BA747616B6CD0638C9C299CA1D0F2354FF1D9FFE48D0678E4F546ACA83106AE9B2215971CAC6898BACEB45AB058F05F5A653DDEC692BA029B972A67527D308D6B73C20808A67840A6F1863E476A088E1C4110BF5
|
||||
|
||||
j = 69
|
||||
MD = D60D2DDC59311C29049AFCDBAC76771EAB62301D5902C80C35195A172ABF4D69F1B67BB28734D16F397A3A978510D9D6A8EF0550E912B7C9DB8EDDE8A2FBDD23DF639C4DF48D7C4AF8A8D36840026675A4580EA445375F9E573B72F63BDD08B3
|
||||
|
||||
j = 70
|
||||
MD = E39F48397D50141CD003A2587AC4308782013B79048CD00D217B0B07D4D0CBF6CB757AE4BDB655B29D99EAFDDB5328AFBCD2C641086CC83E2CE2FE8321250B04847994D41965F8EA7830B854C677070A4BC31240589B7744698EC4766ABB9F0E
|
||||
|
||||
j = 71
|
||||
MD = D39AEAE3C7672944A6AB8BDAC7B00C054218124A51B343A1D3F6291896D7FD44FB0113E341AB38C6C7F16DDB55DFAE416D0F098BB473DC69EF0A2369DF7C765174010F1F7990B880B7E13D06597C260F14DC610426649014A3AF3177DA0089BB
|
||||
|
||||
j = 72
|
||||
MD = BD2BD2E124DFD2ACA1DA22745D8BB346DB28CC07945FB3C090B95C1CB8FE63CC5BF827389BE9827169AB059248D36CB73CF07D36B8D53B85D81A28BB2E4020328123AF810D909132319CDD529D65CCC409649E6384EAA0CF990FAAEBB472C92C
|
||||
|
||||
j = 73
|
||||
MD = DF7B79A0F88C853D3934F398DA9EA6A31C962AC23C944A29EDFCA2224BF20A9D54A3106BF9F147F8A41507A949748D0EAFCBFC659D886E2370F41D77009B21C698D8843837747C569674154D84C1693A539238A36161A71AA16650B8AF8E7E66
|
||||
|
||||
j = 74
|
||||
MD = 5D359B05759F20C5F99CEB4CCF558946D82D4AB42531513260313C426D10E0BBAD1A72D45AAA12FDEF28AC7DCB9FDBDC12DCF73799F00E156A1A1379E038812852C45722499B5F288BD64446F845F66BDCEADE8E7AF24A4B47AF1E4F2ABCD502
|
||||
|
||||
j = 75
|
||||
MD = F6BFBAFDCE412FEE0EC0F785C08378F50519847A268E9C6EC74C57F1AC505E9927CD482794B6CD6C011475811ACE516215FB50D87DC7F40C8E53290F01A4E1DFA2193AE98CA0AAB72E55CD2DE69C23E7CB453903413740D692D4D9AD81F6211C
|
||||
|
||||
j = 76
|
||||
MD = 2C6A1D19BA35A83A40B39C07F95F3252A61C955F612E761BFF90B0ED5E0DEADA4DDB723E3ECF278C20492712A903AE148871C767301E368BC8DF39B1C9AA6D0EE39ED168B506928D8DF7B082BDB271A2E6FD54432B675675EFBB514B3F1FCBF4
|
||||
|
||||
j = 77
|
||||
MD = 53DE1C33A9B8E2042A1A2E8AB4FC95B7ADFDE36F25161B183A564DF78F0F60940A1C8E1B4BBE7C9A53DF2ED814451BAF02BC07F0307979457C7D451DEA02DFE0B7411DDF58CFD73BCAC315C9521B5A0BD3E32061F97C82F696C84227CA2646FF
|
||||
|
||||
j = 78
|
||||
MD = 17B3B4367F1F6A09F9D113E270BDB4B94C2399DAE39D9425B9A9D8210B6866DF3EBB536BDCC19C611EBA5EE2F65266172ECC05D4E737D3B0CE3394C94F448EDCA31B787D11DCC9D8D3A0D507E69E6F48BD99FB853717136DC35130E99034F1E3
|
||||
|
||||
j = 79
|
||||
MD = EC408AFE72C2DEDD9A9505BCBAB927C05334C194202656364E352907FEDF3683D14C335C05C0BC4110E287B419E3F18B7A23E5321A79DFA1B95C6EE2A1A1254784D59A5DECD5B4E9AFA694D2CA0A4BA2C3A4546573C0615EFF56FF6C7A60A786
|
||||
|
||||
j = 80
|
||||
MD = FBCFD745EFB167B219D0A50533470887CA6FBC3537DFD52298483490D7A25F78B5A38C1FD9FDF8DBB6CF4B5936DD3D20A34CEB79DE640F6B4B5D0E99CE0AED94AEAD6DF1C9A5920A1F45712BC070A6A1612AE962127D192C3C8C3FF437D8468B
|
||||
|
||||
j = 81
|
||||
MD = 4DDE2B408C8733E3262817E292ED9F60C46A1AAD5CE83486A4C561036DAC35814BD3AE973057F46FB7C89FE754CB6D6EA27E874A53F20CB3536981CA521E6407FD7E16DAA04F3164C53D30747093B27E8DDD88DA27A3411FBF53270E663C9FE9
|
||||
|
||||
j = 82
|
||||
MD = AE4119545BD60867057F765B27B222065B71421F00EE4AB3D5F0C84E6F8023A8480F48F031F66BBAFD7A1C1164F2971EFEE2D2EEB093EF6578EB467A275DBBFEA697DCF1D9EBD7427F92DFB8EB750C6A3C5EA565710BD939BF16C0D4068E5D03
|
||||
|
||||
j = 83
|
||||
MD = 7F658B8DC689A50B7521A6BB377812D3749B69502A086A04EAAAD0BD32E1F72B8573C1FDB3FB6804A40861C6C9BF5CD3F044BB9789CDCA6B4752C7DEB851F9D5CCCB3B0A507585F8511D236259976D1566C2A369F8A96FFAAA78366B225FAB0B
|
||||
|
||||
j = 84
|
||||
MD = B9B444491D717842443A2586ED03F473D1E1CAD8192117E1963332716C6A3A7757F80AB953BC16AE3B5599F921A23B870116A11C602F55D525FB5A61B532EF987E80D8D62E7062848B06684BA80F08BD6C0ABED3BF92C41FCB512A91DEE97D12
|
||||
|
||||
j = 85
|
||||
MD = DC1B80C788E137B8FB58461080E3DC6A30EBEDA0C6B4A0204205B7B653A81C35EED7D1CCDA062D864889FCBAAC9524BA79118BE5A1F6E1AC42E911555EA464AECFC08BE8FF144AE18868F0780FFFDC759A77F00412812CDDC48672B34C4E610E
|
||||
|
||||
j = 86
|
||||
MD = 276C9D4339065B1C560BA4B73CBBC3599913EF0CC9AC6331EB21BF7C5D3EB882A909A9F8D7E8DF43EE328191398E6B8007FA740D62D5FAD63D97FA805929987EC6819E58A9E0CCD60745B8695516D5CE05E0433F9FD501E7F7711259BE540D60
|
||||
|
||||
j = 87
|
||||
MD = 1D8620DAE08B01204CC25CED8051EBB2BB5E4481BE84E4D4B4E97B8F0B789A003D3009BA907C6934FFF65580BF1110F57AC22852141D65076859AFC545D4A76140DB20B01FC42C4208185F14BEE4F41BA0E6D820D1ADF0B4FBE468DAE02DDD35
|
||||
|
||||
j = 88
|
||||
MD = E827C48271A35F86F14B42A83485D4CC6629CE928BBE7EDE5909472979CE61DC58A772C2BE733F9FB7F6FF8C3B1BC3501A5E541CA0541AC5270C2FB8E456B341ABA9241D141B4C2DF993CA59D61C8C4B9A7185DAC46CA5C4F270B48D4D195B06
|
||||
|
||||
j = 89
|
||||
MD = 4C577FC5B3020463E29CA78A5EDEA85303944D9E9DCA96EE7B4E3CA9E7C9512E5066CEDCFD8A681CE3B2A5854DDBE2EA34E102F15A63F0DB001BB90CD2246161577EEB0DDFA55B4013EEEF05FBA72E09F809F9AD9DB06EBB09B7C07FEDA6744A
|
||||
|
||||
j = 90
|
||||
MD = 8D479ABCE4EB26A1A0C6B06730184B479BA1DA850511A475A8581F2E2F2B10C2D1F7E04ABB4A9E4A6D2035675389BC6248286E19EFA6FED06EE84BCC08F2B689C32E40B019DCC0BAE5822F00431EA1968647A4C4EEC29817D0612F2BE83B5F9F
|
||||
|
||||
j = 91
|
||||
MD = BE0654966DA156C54E01FC370F99A63EDDD59FB7F32F1094DD940806B2F9DC8CCC8A558890D5E708D636504F0258702FFA0445FA45B32A85F94DB3A5FC732E9FC5C7C00B79670A0E56660BA9ECC2EE995F753AA8432857372AAFC5ADF7CC033A
|
||||
|
||||
j = 92
|
||||
MD = 5B0A6E59112F72B5C1DD97E3C95EC54E2283D7760B6BE16545502FF75FF2FC2C2B8B19044CE1E18D32FB5B7FF4A04FA48FF8EFA3115A222C302F6A673B23AEA32152BE9EED38D6614EE250A0708F412E660BFD7A6F2EAA18DA2FEFE55D8ACFC3
|
||||
|
||||
j = 93
|
||||
MD = AD48BFD443437572D7C72692828924B7EA3E380BFFCF76F3C9D6A01ACCBD78A323EB3B44803293032F6AED0B55899CE6482A0182E0653A2B4F47D42C056654F677D73D9AA8233ECABC286661A719BD6AC8DC9F682824A8E0930C33060B41EE36
|
||||
|
||||
j = 94
|
||||
MD = DDA7C17C873A1782330FF388B105C1A1CF0D81F6C569CB0DCB79335B98E9D948D0908837621665E92ED4AB29358507CBC23151126210BAFDCACB1EB313EF0824756FC9630ECD705F897DA814362C47210DFFA3555624F505380B09EE62CBAC35
|
||||
|
||||
j = 95
|
||||
MD = 9F875A884D4AAC0F07C396D2595AB21F9D01BD307106BDC86731AC9A42F93BE7E6DE679AA3FD553AAE3168D7F259E82093B711F6B38818C7D126003172BF67FA1C66771116465A3C910F40A9CB2238FB5B317407B52133310E21F5931BAD89FA
|
||||
|
||||
j = 96
|
||||
MD = 8BC90C1E136170644DBCD99DF3F0C5EA227B28756A9933041335C5E16AFE8384C33F098C1EE60FAC548C8BD18419CE1CE67F933B1F8D923A5ABFD875AB1CED9E4D63AB2AFF5C9DA27C0A274C1B16D752848FDDEAAE43ADA8F55A577F28FBFB27
|
||||
|
||||
j = 97
|
||||
MD = 13E47AAFDC74B6513C053D933E821FEAF2F8A070C81E528BA764918275764A9296CB5052001C3CFF2659BC64F617EA0C4FA16C6A88E0C6D2A8CFA339BD3D96CF30B7C0BF9FF1DDA4EBB230B0DA1FC950B6D5A146AECC8D880744FBD3A1587432
|
||||
|
||||
j = 98
|
||||
MD = B65E9D7D0098FBECC07AEFB5F5703C2376EB9CFA1058F77ADB3D6D220CC1B3E8F82768CD0DC23B27FA12ECD9E69FE5358F2E1466441D4D138D1F479C88135653C587BBF26F84A9FD97772EFE4DEBFD7A9CE382518F14BFC42F3D4B0661B0FF11
|
||||
|
||||
j = 99
|
||||
MD = DB9C4D6FDDDD0C2CAE1DDD9C687D9E9B849439AFE1E04317B9D831A676BF872E4493EFE07DD5EDA3B7060DFBA0A5392BF5C5B8699FF8DEF0C479F56C690B534F0EBB7BC1FC23F40F6DFC964434870302DFD45E16884854B2F78844B53F53C56C
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,328 @@
|
|||
/* ubi1024_asm.S */
|
||||
/*
|
||||
This file is part of the AVR-Crypto-Lib.
|
||||
Copyright (C) 2009 Daniel Otte (daniel.otte@rub.de)
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*
|
||||
* \author Daniel Otte
|
||||
* \email daniel.otte@rub.de
|
||||
* \date 2009-03-16
|
||||
* \license GPLv3 or later
|
||||
*/
|
||||
|
||||
#include "avr-asm-macros.S"
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void ubi1024_init(ubi1024_ctx_t* ctx, const void* g, uint8_t type){
|
||||
memset(ctx->tweak, 0, 15);
|
||||
ctx->tweak[15] = 0x40+type;
|
||||
memcpy(ctx->g, g, UBI1024_BLOCKSIZE_B);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param ctx: r24:r25
|
||||
* param g: r22:r23
|
||||
* param type: r20
|
||||
*/
|
||||
.global ubi1024_init
|
||||
ubi1024_init:
|
||||
movw r26, r24
|
||||
ldi r21, 15
|
||||
1: st X+, r1
|
||||
dec r21
|
||||
brne 1b
|
||||
ori r20, 0x40
|
||||
st X+, r20
|
||||
ldi r21, 128
|
||||
movw r30, r22
|
||||
2: ld r20, Z+
|
||||
st X+, r20
|
||||
dec r21
|
||||
brne 2b
|
||||
ret
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void ubi1024_ctx2hash(void* dest, const ubi1024_ctx_t* ctx){
|
||||
memcpy(dest, ctx->g, UBI1024_BLOCKSIZE_B);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param dest: r24:r24
|
||||
* param ctx: r22:r23
|
||||
*/
|
||||
.global ubi1024_ctx2hash
|
||||
ubi1024_ctx2hash:
|
||||
movw r26, r24
|
||||
movw r30, r22
|
||||
adiw r30, 16
|
||||
ldi r22, 128
|
||||
1: ld r23, Z+
|
||||
st X+, r23
|
||||
dec r22
|
||||
brne 1b
|
||||
ret
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void ubi1024_nextBlock(ubi1024_ctx_t* ctx, const void* block){
|
||||
threefish1024_ctx_t tfctx;
|
||||
((uint64_t*)(ctx->tweak))[0] += UBI1024_BLOCKSIZE_B;
|
||||
threefish1024_init(ctx->g, ctx->tweak, &tfctx);
|
||||
memcpy(ctx->g, block, UBI1024_BLOCKSIZE_B);
|
||||
threefish1024_enc(ctx->g, &tfctx);
|
||||
memxor(ctx->g, block, UBI1024_BLOCKSIZE_B);
|
||||
ctx->tweak[15] &= (uint8_t)~0x40;
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param ctx: r24:r25
|
||||
* param block: r22:r23
|
||||
*/
|
||||
CTX0 = 2
|
||||
CTX1 = 3
|
||||
BLOCK0 = 4
|
||||
BLOCK1 = 5
|
||||
TFCTX0 = 6
|
||||
TFCTX1 = 7
|
||||
.global ubi1024_nextBlock
|
||||
ubi1024_nextBlock:
|
||||
stack_alloc_large 20*8
|
||||
push_range 2, 7
|
||||
adiw r30, 1 /* Z points to tfctx */
|
||||
movw TFCTX0, r30
|
||||
movw CTX0, r24
|
||||
movw BLOCK0, r22
|
||||
movw r26, r24
|
||||
/* add BLOCKSIZE_B (128) to tweak */
|
||||
ldi r25, 128
|
||||
ld r24, X
|
||||
add r24, r25
|
||||
st X+, r24
|
||||
ldi r25, 11
|
||||
1: ld r24, X
|
||||
adc r24, r1
|
||||
st X+, r24
|
||||
dec r25
|
||||
brne 1b
|
||||
/* call threefish1024_init */
|
||||
movw r24, CTX0
|
||||
adiw r24, 16
|
||||
movw r22, CTX0
|
||||
movw CTX0, r24 /* CTX points to ctx->g */
|
||||
movw r20, TFCTX0
|
||||
rcall threefish1024_init
|
||||
/* copy block to ctx->g */
|
||||
movw r26, CTX0
|
||||
movw r30, BLOCK0
|
||||
ldi r25, 128
|
||||
1: ld r24, Z+
|
||||
st X+, r24
|
||||
dec r25
|
||||
brne 1b
|
||||
/* call threefish1024_enc */
|
||||
movw r24, CTX0
|
||||
movw r22, TFCTX0
|
||||
rcall threefish1024_enc
|
||||
/* xor block into ctx->g */
|
||||
movw r26, BLOCK0
|
||||
movw r30, CTX0
|
||||
ldi r25, 128
|
||||
1: ld r24, X+
|
||||
ld r23, Z
|
||||
eor r23, r24
|
||||
st Z+, r23
|
||||
dec r25
|
||||
brne 1b
|
||||
/* clear 'first' bit in tweak */
|
||||
sbiw r30, 1+2
|
||||
sbiw r30, 63
|
||||
sbiw r30, 63
|
||||
ld r24, Z
|
||||
andi r24, ~0x40
|
||||
st Z, r24
|
||||
exit:
|
||||
pop_range 2, 7
|
||||
stack_free_large2 20*8
|
||||
ret
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void ubi1024_lastBlock(ubi1024_ctx_t* ctx, const void* block, uint16_t length_b){
|
||||
threefish1024_ctx_t tfctx;
|
||||
while(length_b>UBI1024_BLOCKSIZE){
|
||||
ubi1024_nextBlock(ctx, block);
|
||||
block = (uint8_t*)block + UBI1024_BLOCKSIZE_B;
|
||||
length_b -= UBI1024_BLOCKSIZE;
|
||||
}
|
||||
ctx->tweak[15] |= 0x80;
|
||||
((uint64_t*)(ctx->tweak))[0] += (length_b+7)/8;
|
||||
if(length_b & 0x07)
|
||||
ctx->tweak[14] |= 0x80;
|
||||
threefish1024_init(ctx->g, ctx->tweak, &tfctx);
|
||||
memset(ctx->g, 0, UBI1024_BLOCKSIZE_B);
|
||||
memcpy(ctx->g, block, (length_b+7)/8);
|
||||
if(length_b & 0x07)
|
||||
ctx->g[(length_b+7)/8-1] |= 0x80>>(length_b&7);
|
||||
threefish1024_enc(ctx->g, &tfctx);
|
||||
memxor(ctx->g, block, (length_b+7)/8);
|
||||
if(length_b & 0x07){
|
||||
ctx->g[((length_b+7)/8)-1] ^= 0x80>>(length_b&7);
|
||||
}
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param ctx: r24:r25
|
||||
* param block: r22:r23
|
||||
* param ength_b: r20:r21
|
||||
*/
|
||||
MASK_B = 8
|
||||
LEN_B = 9
|
||||
TFCTX0 = 10
|
||||
TFCTX1 = 11
|
||||
CTX0 = 12
|
||||
CTX1 = 13
|
||||
BLOCK0 = 14
|
||||
BLOCK1 = 15
|
||||
LENGTH0 = 16
|
||||
LENGTH1 = 17
|
||||
.global ubi1024_lastBlock
|
||||
ubi1024_lastBlock:
|
||||
/* run nextBlock for preceding blocks*/
|
||||
push_range 8, 17
|
||||
movw CTX0, r24
|
||||
movw BLOCK0, r22
|
||||
movw LENGTH0, r20
|
||||
1: cpi LENGTH1, 5
|
||||
brlo 2f
|
||||
movw r24, CTX0
|
||||
movw r22, BLOCK0
|
||||
rcall ubi1024_nextBlock
|
||||
ldi r25, 128
|
||||
add BLOCK0, r25
|
||||
adc BLOCK1, r1
|
||||
subi LENGTH1, 4
|
||||
rjmp 1b
|
||||
2: cpi LENGTH1, 4
|
||||
brlo 3f
|
||||
tst LENGTH0
|
||||
breq 3f
|
||||
movw r24, CTX0
|
||||
movw r22, BLOCK0
|
||||
rcall ubi1024_nextBlock
|
||||
ldi r25, 128
|
||||
add BLOCK0, r25
|
||||
adc BLOCK1, r1
|
||||
subi LENGTH1, 4
|
||||
3: /* now the real fun */
|
||||
stack_alloc_large 20*8
|
||||
adiw r30, 1
|
||||
movw TFCTX0, r30
|
||||
/* calculate LEN_B */
|
||||
movw r24, LENGTH0
|
||||
adiw r24, 7
|
||||
lsr r25
|
||||
ror r24
|
||||
lsr r25
|
||||
ror r24
|
||||
lsr r25
|
||||
ror r24
|
||||
mov LEN_B, r24
|
||||
/* add length to tweak */
|
||||
movw r30, CTX0
|
||||
ld r24, Z
|
||||
add r24, LEN_B
|
||||
st Z+, r24
|
||||
ldi r25, 11
|
||||
1: ld r24, Z
|
||||
adc r24, r1
|
||||
st Z+, r24
|
||||
dec r25
|
||||
brne 1b
|
||||
/* set 'final' bit*/
|
||||
movw r30, CTX0
|
||||
ldd r24, Z+15
|
||||
ori r24, 0x80
|
||||
std Z+15, r24
|
||||
/* store in MASK_B if we do bit processing and set 'BitPad' bit*/
|
||||
clr MASK_B
|
||||
mov r24, LENGTH0
|
||||
andi r24, 0x07
|
||||
tst r24
|
||||
breq 4f
|
||||
ldd r25, Z+14
|
||||
ori r25, 0x80
|
||||
std Z+14, r25
|
||||
ldi r25, 0x80
|
||||
mov MASK_B, r25
|
||||
1: lsr MASK_B
|
||||
dec r24
|
||||
brne 1b
|
||||
4: /* call threefish1024_init*/
|
||||
movw r24, CTX0
|
||||
adiw r24, 16
|
||||
movw r22, CTX0
|
||||
movw CTX0, r24 /* CTX points at ctx->g */
|
||||
movw r20, TFCTX0
|
||||
rcall threefish1024_init
|
||||
/* copy block to ctx->g */
|
||||
movw r26, BLOCK0
|
||||
movw r30, CTX0
|
||||
mov r24, LEN_B
|
||||
ldi r25, 128
|
||||
sub r25, LEN_B
|
||||
tst r24
|
||||
1: breq 2f
|
||||
ld r22, X+
|
||||
st Z+, r22
|
||||
dec r24
|
||||
rjmp 1b
|
||||
2: tst MASK_B
|
||||
breq 29f
|
||||
or r22, MASK_B
|
||||
st -Z, r22
|
||||
adiw r30, 1
|
||||
29: tst r25
|
||||
3: breq 4f
|
||||
st Z+, r1
|
||||
dec r25
|
||||
rjmp 3b
|
||||
4: /* call threefish1024_enc */
|
||||
movw r24, CTX0
|
||||
movw r22, TFCTX0
|
||||
rcall threefish1024_enc
|
||||
/* xor block into ctx->g */
|
||||
movw r30, CTX0
|
||||
movw r26, BLOCK0
|
||||
tst LEN_B
|
||||
5: breq 6f
|
||||
ld r22, X+
|
||||
ld r23, Z
|
||||
eor r23, r22
|
||||
st Z+, r23
|
||||
dec LEN_B
|
||||
rjmp 5b
|
||||
6: tst MASK_B
|
||||
breq 7f
|
||||
eor r23, MASK_B
|
||||
st -Z, r23
|
||||
|
||||
7: stack_free_large2 20*8
|
||||
pop_range 8, 17
|
||||
ret
|
||||
|
||||
|
|
@ -0,0 +1,326 @@
|
|||
/* ubi512_asm.S */
|
||||
/*
|
||||
This file is part of the AVR-Crypto-Lib.
|
||||
Copyright (C) 2009 Daniel Otte (daniel.otte@rub.de)
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*
|
||||
* \author Daniel Otte
|
||||
* \email daniel.otte@rub.de
|
||||
* \date 2009-03-25
|
||||
* \license GPLv3 or later
|
||||
*/
|
||||
|
||||
#include "avr-asm-macros.S"
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void ubi512_init(ubi512_ctx_t* ctx, const void* g, uint8_t type){
|
||||
memset(ctx->tweak, 0, 15);
|
||||
ctx->tweak[15] = 0x40+type;
|
||||
memcpy(ctx->g, g, UBI512_BLOCKSIZE_B);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param ctx: r24:r25
|
||||
* param g: r22:r23
|
||||
* param type: r20
|
||||
*/
|
||||
.global ubi512_init
|
||||
ubi512_init:
|
||||
movw r26, r24
|
||||
ldi r21, 15
|
||||
1: st X+, r1
|
||||
dec r21
|
||||
brne 1b
|
||||
ori r20, 0x40
|
||||
st X+, r20
|
||||
ldi r21, 64
|
||||
movw r30, r22
|
||||
2: ld r20, Z+
|
||||
st X+, r20
|
||||
dec r21
|
||||
brne 2b
|
||||
ret
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void ubi512_ctx2hash(void* dest, const ubi512_ctx_t* ctx){
|
||||
memcpy(dest, ctx->g, UBI512_BLOCKSIZE_B);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param dest: r24:r24
|
||||
* param ctx: r22:r23
|
||||
*/
|
||||
.global ubi512_ctx2hash
|
||||
ubi512_ctx2hash:
|
||||
movw r26, r24
|
||||
movw r30, r22
|
||||
adiw r30, 16
|
||||
ldi r22, 64
|
||||
1: ld r23, Z+
|
||||
st X+, r23
|
||||
dec r22
|
||||
brne 1b
|
||||
ret
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void ubi512_nextBlock(ubi512_ctx_t* ctx, const void* block){
|
||||
threefish512_ctx_t tfctx;
|
||||
((uint64_t*)(ctx->tweak))[0] += UBI512_BLOCKSIZE_B;
|
||||
threefish512_init(ctx->g, ctx->tweak, &tfctx);
|
||||
memcpy(ctx->g, block, UBI512_BLOCKSIZE_B);
|
||||
threefish512_enc(ctx->g, &tfctx);
|
||||
memxor(ctx->g, block, UBI512_BLOCKSIZE_B);
|
||||
ctx->tweak[15] &= (uint8_t)~0x40;
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param ctx: r24:r25
|
||||
* param block: r22:r23
|
||||
*/
|
||||
CTX0 = 2
|
||||
CTX1 = 3
|
||||
BLOCK0 = 4
|
||||
BLOCK1 = 5
|
||||
TFCTX0 = 6
|
||||
TFCTX1 = 7
|
||||
.global ubi512_nextBlock
|
||||
ubi512_nextBlock:
|
||||
stack_alloc_large 12*8
|
||||
push_range 2, 7
|
||||
adiw r30, 1 /* Z points to tfctx */
|
||||
movw TFCTX0, r30
|
||||
movw CTX0, r24
|
||||
movw BLOCK0, r22
|
||||
movw r26, r24
|
||||
/* add BLOCKSIZE_B (64) to tweak */
|
||||
ldi r25, 64
|
||||
ld r24, X
|
||||
add r24, r25
|
||||
st X+, r24
|
||||
ldi r25, 11
|
||||
1: ld r24, X
|
||||
adc r24, r1
|
||||
st X+, r24
|
||||
dec r25
|
||||
brne 1b
|
||||
/* call threefish512_init */
|
||||
movw r24, CTX0
|
||||
adiw r24, 16
|
||||
movw r22, CTX0
|
||||
movw CTX0, r24 /* CTX points to ctx->g */
|
||||
movw r20, TFCTX0
|
||||
rcall threefish512_init
|
||||
/* copy block to ctx->g */
|
||||
movw r26, CTX0
|
||||
movw r30, BLOCK0
|
||||
ldi r25, 64
|
||||
1: ld r24, Z+
|
||||
st X+, r24
|
||||
dec r25
|
||||
brne 1b
|
||||
/* call threefish512_enc */
|
||||
movw r24, CTX0
|
||||
movw r22, TFCTX0
|
||||
rcall threefish512_enc
|
||||
/* xor block into ctx->g */
|
||||
movw r26, BLOCK0
|
||||
movw r30, CTX0
|
||||
ldi r25, 64
|
||||
1: ld r24, X+
|
||||
ld r23, Z
|
||||
eor r23, r24
|
||||
st Z+, r23
|
||||
dec r25
|
||||
brne 1b
|
||||
/* clear 'first' bit in tweak */
|
||||
sbiw r30, 33
|
||||
sbiw r30, 32
|
||||
ld r24, Z
|
||||
andi r24, ~0x40
|
||||
st Z, r24
|
||||
exit:
|
||||
pop_range 2, 7
|
||||
stack_free_large 12*8
|
||||
ret
|
||||
|
||||
/******************************************************************************/
|
||||
/*
|
||||
void ubi512_lastBlock(ubi512_ctx_t* ctx, const void* block, uint16_t length_b){
|
||||
threefish512_ctx_t tfctx;
|
||||
while(length_b>UBI512_BLOCKSIZE){
|
||||
ubi512_nextBlock(ctx, block);
|
||||
block = (uint8_t*)block + UBI512_BLOCKSIZE_B;
|
||||
length_b -= UBI512_BLOCKSIZE;
|
||||
}
|
||||
ctx->tweak[15] |= 0x80;
|
||||
((uint64_t*)(ctx->tweak))[0] += (length_b+7)/8;
|
||||
if(length_b & 0x07)
|
||||
ctx->tweak[14] |= 0x80;
|
||||
threefish512_init(ctx->g, ctx->tweak, &tfctx);
|
||||
memset(ctx->g, 0, UBI512_BLOCKSIZE_B);
|
||||
memcpy(ctx->g, block, (length_b+7)/8);
|
||||
if(length_b & 0x07)
|
||||
ctx->g[(length_b+7)/8-1] |= 0x80>>(length_b&7);
|
||||
threefish512_enc(ctx->g, &tfctx);
|
||||
memxor(ctx->g, block, (length_b+7)/8);
|
||||
if(length_b & 0x07){
|
||||
ctx->g[((length_b+7)/8)-1] ^= 0x80>>(length_b&7);
|
||||
}
|
||||
}
|
||||
*/
|
||||
/*
|
||||
* param ctx: r24:r25
|
||||
* param block: r22:r23
|
||||
* param ength_b: r20:r21
|
||||
*/
|
||||
MASK_B = 8
|
||||
LEN_B = 9
|
||||
TFCTX0 = 10
|
||||
TFCTX1 = 11
|
||||
CTX0 = 12
|
||||
CTX1 = 13
|
||||
BLOCK0 = 14
|
||||
BLOCK1 = 15
|
||||
LENGTH0 = 16
|
||||
LENGTH1 = 17
|
||||
.global ubi512_lastBlock
|
||||
ubi512_lastBlock:
|
||||
/* run nextBlock for preceding blocks*/
|
||||
push_range 8, 17
|
||||
movw CTX0, r24
|
||||
movw BLOCK0, r22
|
||||
movw LENGTH0, r20
|
||||
1: cpi LENGTH1, 3
|
||||
brlo 2f
|
||||
movw r24, CTX0
|
||||
movw r22, BLOCK0
|
||||
rcall ubi512_nextBlock
|
||||
ldi r25, 64
|
||||
add BLOCK0, r25
|
||||
adc BLOCK1, r1
|
||||
subi LENGTH1, 2
|
||||
rjmp 1b
|
||||
2: cpi LENGTH1, 2
|
||||
brlo 3f
|
||||
tst LENGTH0
|
||||
breq 3f
|
||||
movw r24, CTX0
|
||||
movw r22, BLOCK0
|
||||
rcall ubi512_nextBlock
|
||||
ldi r25, 64
|
||||
add BLOCK0, r25
|
||||
adc BLOCK1, r1
|
||||
subi LENGTH1, 2
|
||||
3: /* now the real fun */
|
||||
stack_alloc_large 8*12
|
||||
adiw r30, 1
|
||||
movw TFCTX0, r30
|
||||
/* calculate LEN_B */
|
||||
movw r24, LENGTH0
|
||||
adiw r24, 7
|
||||
lsr r25
|
||||
ror r24
|
||||
lsr r25
|
||||
ror r24
|
||||
lsr r24
|
||||
mov LEN_B, r24
|
||||
/* add length to tweak */
|
||||
movw r30, CTX0
|
||||
ld r24, Z
|
||||
add r24, LEN_B
|
||||
st Z+, r24
|
||||
ldi r25, 11
|
||||
1: ld r24, Z
|
||||
adc r24, r1
|
||||
st Z+, r24
|
||||
dec r25
|
||||
brne 1b
|
||||
/* set 'final' bit*/
|
||||
movw r30, CTX0
|
||||
ldd r24, Z+15
|
||||
ori r24, 0x80
|
||||
std Z+15, r24
|
||||
/* store in MASk_B if we do bit processing and set 'BitPad' bit*/
|
||||
clr MASK_B
|
||||
mov r24, LENGTH0
|
||||
andi r24, 0x07
|
||||
tst r24
|
||||
breq 4f
|
||||
ldd r25, Z+14
|
||||
ori r25, 0x80
|
||||
std Z+14, r25
|
||||
ldi r25, 0x80
|
||||
mov MASK_B, r25
|
||||
1: lsr MASK_B
|
||||
dec r24
|
||||
brne 1b
|
||||
4: /* call threefish512_init*/
|
||||
movw r24, CTX0
|
||||
adiw r24, 16
|
||||
movw r22, CTX0
|
||||
movw CTX0, r24 /* CTX points at ctx->g */
|
||||
movw r20, TFCTX0
|
||||
rcall threefish512_init
|
||||
/* copy block to ctx->g */
|
||||
movw r26, BLOCK0
|
||||
movw r30, CTX0
|
||||
mov r24, LEN_B
|
||||
ldi r25, 64
|
||||
sub r25, LEN_B
|
||||
tst r24
|
||||
1: breq 2f
|
||||
ld r22, X+
|
||||
st Z+, r22
|
||||
dec r24
|
||||
rjmp 1b
|
||||
2: tst MASK_B
|
||||
breq 29f
|
||||
or r22, MASK_B
|
||||
st -Z, r22
|
||||
adiw r30, 1
|
||||
29: tst r25
|
||||
3: breq 4f
|
||||
st Z+, r1
|
||||
dec r25
|
||||
rjmp 3b
|
||||
4: /* call threefish512_enc */
|
||||
movw r24, CTX0
|
||||
movw r22, TFCTX0
|
||||
rcall threefish512_enc
|
||||
/* xor block into ctx->g */
|
||||
movw r30, CTX0
|
||||
movw r26, BLOCK0
|
||||
tst LEN_B
|
||||
5: breq 6f
|
||||
ld r22, X+
|
||||
ld r23, Z
|
||||
eor r23, r22
|
||||
st Z+, r23
|
||||
dec LEN_B
|
||||
rjmp 5b
|
||||
6: tst MASK_B
|
||||
breq 7f
|
||||
eor r23, MASK_B
|
||||
st -Z, r23
|
||||
|
||||
7: stack_free_large 8*12
|
||||
pop_range 8, 17
|
||||
ret
|
||||
|
||||
|
Loading…
Reference in New Issue