uint32_t x(uint32_t v) { return (v ^ your_secret_32bit_mask); } 2011년 11월 10일 (목) 오후 07시 32분 48초 아무개 (bs0230): > 오랫 만에 이런 것을 하려니까 영 힘드네요. > > 32bit수를 다른 32bit수로 1:1 변환시키려고 합니다. > > 조건은 > > > 조건1 - 역변환이 가능하며 (원래 변환과) 거의 같은 난이도여 함. > > 조건2 - 순서대로 숫자를 입력해서 변환시켰을 때 변화된 값으로부터 > > 원래 순서를 짐작하기 어려워야 함. > > > 8bit수 -> 8bit수 변환의의 예를 들어 약간 더 자세히 설명하면, > > 입력이 [23,24,25,26,...]로 주어졌을 때 변환된 출력이 > > [109,243,164,12...] 이런 식으로 얼른 봐서 무슨 규칙인지 알기 > > 힘들어야 한다는 뜻입니다. 역변환을 적용시키면 원래 입력이 나와야 > > 하구요. > > > 32bit수에 대해서 이런 일을 하고 싶은데요. 이런 일을 할 수 있는 > > 함수가 있을까요? > > 얼른 생각에 pseudo random 함수가 떠오르긴 하던데, 이게 32bit -> > > 32bit으로 1:1변환이 되는지도 확실히 모르겠고 역변환도 쉽지 않은 것 > > 같더군요.