Ejemplo n.º 1
0
void rrr_enc_dec_round(uint8_t *block, uint8_t *roundKey,uint8_t round,uint8_t *key_ctr,uint8_t mode)
{
	uint8_t i, temp[4];
	
	for(i=0;i<4;i++) temp[i] = block[i];
	
	rrr_SLK(block,roundKey+key_ctr[0]);
	key_ctr[0] = (key_ctr[0]+4)&15;
	rrr_SLK(block,roundKey+key_ctr[0]);
	key_ctr[0] = (key_ctr[0]+4)&15;
	block[3] ^= round;
	rrr_SLK(block,roundKey+key_ctr[0]);
	if(mode==1) key_ctr[0] = (key_ctr[0]+12)&15;
	else key_ctr[0] = (key_ctr[0]+4)&15;
	rrr_sbox(block);
	
	for(i=0;i<4;i++) block[i] ^= block[i+4];
	for(i=0;i<4;i++) block[i+4] = temp[i];
}
Ejemplo n.º 2
0
void rrr_enc_dec_round(uint8_t *block, uint8_t *roundKey,uint8_t round,uint8_t *kc,uint8_t mode)
{
    uint8_t i, temp[4], z, key_ctr = kc[0];
    
    for(i=0;i<4;i++) temp[i] = block[i];
    
    rrr_SLK(block)
    key_ctr = (key_ctr+4)&15;
    rrr_SLK(block)
    key_ctr = (key_ctr+4)&15;
    block[3] ^= round;
    rrr_SLK(block)
    if(mode==1) key_ctr = (key_ctr+12)&15;\
    else key_ctr = (key_ctr+4)&15;
    rrr_sbox(block)
    
    for(i=0;i<4;i++) block[i] ^= block[i+4];
    for(i=0;i<4;i++) block[i+4] = temp[i];
    kc[0] = key_ctr;
}