aes 에서 sbox 변환 작성하면서 테스트 해본것들


subword32(u32 *dword)

{

        u8 *bptr = (u8 *) dword;

     

        bptr[0] = SBOX[*bptr];

        bptr[1] = SBOX[*(bptr+1)];

        bptr[2] = SBOX[*(bptr+2)];

        bptr[3] = SBOX[*(bptr+3)];

}


subword32(u32 *dword)

{

        *((u8 *) dword) = SBOX[*((u8 *) dword)];

        *((u8 *) dword + 1) = SBOX[*((u8 *) dword + 1)];

        *((u8 *) dword + 2) = SBOX[*((u8 *) dword + 2)];

        *((u8 *) dword + 3) = SBOX[*((u8 *) dword + 3)];

}


ARMv7 1Ghz 에서 1000번 돌렸는데 아래 함수가 더 미묘하게 빨랐다

대충 5~8 usec 정도?


bptr에 선언해서 넣는거 때문에 그런듯?


그런데 의외였던 점은 (내가 코드를 못 짜서 그렇겠지만)

32비트 정수 내부에서 &하고 shift 시키는 방법은 가장 느렸다


망코드

subword32(u32 *dword)

{

*dword = SBOX[ (*dword)>>24 &0xFF]<<24 |

           SBOX[ (*dword)>>16 &0xFF]<<16 |

           SBOX[ *(dword)>>8 &0xFF]<<8   |

           SBOX[ *(dword)];

}


shift를 엄청나게 시키기 때문에 느린거 같다

어차이 2번 방법도 레지스터 하나에서 가져오기 때문에 빠를꺼 같고


여튼 끝~

키확장 코드만 짜면 끝인데 얘를 어케할지가 참 머리 복잡하네

'Game > etc' 카테고리의 다른 글

디아블로2 아이템 복사 원리 신기해서 적어둠  (0) 2018.02.14
테일즈위버  (0) 2016.03.09
충무공전  (0) 2015.02.08
쯔바이(Zwei)  (0) 2015.01.08
모나크모나크  (1) 2015.01.08
Posted by 쵸코케키

블로그 이미지
chocokeki
쵸코케키

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

글 보관함