LSH (해시 함수)
알고리즘 > 초기화

해시 함수의 입력 메시지를  m이라 하자. 먼저  m은 덧붙이기(padding) 과정을 거친다. 덧붙이기 과정은  m의 끝에 비트 ‘1’을 덧붙인 후, 전체 길이가  32wt 비트가 될 때까지 비트 ‘0’을 덧붙인다. 여기에서  t=\lceil (|m|+1)/32w\rceil 이다.
덧붙이기를 마친 메시지를  m_{p}=m_{0}\|m_{1}\|\ldots \|m_{(32wt-1)}이라고 하자. 이때  m_{p}는  4wt 바이트 배열  m_{a}=(m[0],\ldots ,m[4wt-1])로 볼 수 있다. 여기에서  m[k]=m_{8k}\|m_{(8k+1)}\|\ldots \|m_{(8k+7)}  (0\leq k\leq (4wt-1))이다. 바이트 배열  m_{a}는 다음과 같이  32t 워드 배열  {\textsf {M}}=(M[0],\ldots ,M[32t-1])으로 변환할 수 있다.
M[s]\leftarrow m[ws/8+(w/8-1)]\|\ldots \|m[ws/8+1]\|m[ws/8]  (0\leq s\leq (32t-1))
이어서 워드 배열  {\textsf {M}}으로부터 다음과 같은 규칙에 따라  t개 메시지 블록  {\textsf {M}}^{(0)},  {\textsf {M}}^{(1)}, \ldots ,  {\textsf {M}}^{(t-1)}을 구성할 수 있다.
{\textsf {M}}^{(i)}\leftarrow (M[32i],M[32i+1],\ldots ,M[32i+31])  (0\leq i\leq (t-1))
연결 변수  {\textsf {CV}}^{(0)} (\in {\mathcal {W}}^{16})는 초기값을 이용하여 다음과 같이 배열 색인별로 값을 할당하는 방식으로 초기화한다.
이때,  {\mathcal {W}}^{t}는  t\geq 1일 때  t개 워드 배열의 전체 집합을 나타낸다.
{\textsf {CV}}^{(0)}[l]\leftarrow {\textsf {IV}}[l]  (0\leq l\leq 15)
초기값은 다음과 같다.
모든 값은 16진수로 표현되어 있다.
|  {\textsf {IV}}[0] |  {\textsf {IV}}[1] |  {\textsf {IV}}[2] |  {\textsf {IV}}[3] |  {\textsf {IV}}[4] |  {\textsf {IV}}[5] |  {\textsf {IV}}[6] |  {\textsf {IV}}[7] |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 068608D3 | 62D8F7A7 | D76652AB | 4C600A43 | BDC40AA8 | 1ECA0B68 | DA1A89BE | 3147D354 |
|  {\textsf {IV}}[8] |  {\textsf {IV}}[9] |  {\textsf {IV}}[10] |  {\textsf {IV}}[11] |  {\textsf {IV}}[12] |  {\textsf {IV}}[13] |  {\textsf {IV}}[14] |  {\textsf {IV}}[15] |
| 707EB4F9 | F65B3862 | 6B0B2ABE | 56B8EC0A | CF237286 | EE0D1727 | 33636595 | 8BB8D05F |
|  {\textsf {IV}}[0] |  {\textsf {IV}}[1] |  {\textsf {IV}}[2] |  {\textsf {IV}}[3] |  {\textsf {IV}}[4] |  {\textsf {IV}}[5] |  {\textsf {IV}}[6] |  {\textsf {IV}}[7] |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 46A10F1F | FDDCE486 | B41443A8 | 198E6B9D | 3304388D | B0F5A3C7 | B36061C4 | 7ADBD553 |
|  {\textsf {IV}}[8] |  {\textsf {IV}}[9] |  {\textsf {IV}}[10] |  {\textsf {IV}}[11] |  {\textsf {IV}}[12] |  {\textsf {IV}}[13] |  {\textsf {IV}}[14] |  {\textsf {IV}}[15] |
| 105D5378 | 2F74DE54 | 5C2F2D95 | F2553FBE | 8051357A | 138668C8 | 47AA4484 | E01AFB41 |
|  {\textsf {IV}}[0] |  {\textsf {IV}}[1] |  {\textsf {IV}}[2] |  {\textsf {IV}}[3] |
| --- | --- | --- | --- |
| 0C401E9FE8813A55 | 4A5F446268FD3D35 | FF13E452334F612A | F8227661037E354A |
|  {\textsf {IV}}[4] |  {\textsf {IV}}[5] |  {\textsf {IV}}[6] |  {\textsf {IV}}[7] |
| A5F223723C9CA29D | 95D965A11AED3979 | 01E23835B9AB02CC | 52D49CBAD5B30616 |
|  {\textsf {IV}}[8] |  {\textsf {IV}}[9] |  {\textsf {IV}}[10] |  {\textsf {IV}}[11] |
| 9E5C2027773F4ED3 | 66A5C8801925B701 | 22BBC85B4C6779D9 | C13171A42C559C23 |
|  {\textsf {IV}}[12] |  {\textsf {IV}}[13] |  {\textsf {IV}}[14] |  {\textsf {IV}}[15] |
| 31E2B67D25BE3813 | D522C4DEED8E4D83 | A79F5509B43FBAFE | E00D2CD88B4B6C6A |
|  {\textsf {IV}}[0] |  {\textsf {IV}}[1] |  {\textsf {IV}}[2] |  {\textsf {IV}}[3] |
| --- | --- | --- | --- |
| 6DC57C33DF989423 | D8EA7F6E8342C199 | 76DF8356F8603AC4 | 40F1B44DE838223A |
|  {\textsf {IV}}[4] |  {\textsf {IV}}[5] |  {\textsf {IV}}[6] |  {\textsf {IV}}[7] |
| 39FFE7CFC31484CD | 39C4326CC5281548 | 8A2FF85A346045D8 | FF202AA46DBDD61E |
|  {\textsf {IV}}[8] |  {\textsf {IV}}[9] |  {\textsf {IV}}[10] |  {\textsf {IV}}[11] |
| CF785B3CD5FCDB8B | 1F0323B64A8150BF | FF75D972F29EA355 | 2E567F30BF1CA9E1 |
|  {\textsf {IV}}[12] |  {\textsf {IV}}[13] |  {\textsf {IV}}[14] |  {\textsf {IV}}[15] |
| B596875BF8FF6DBA | FCCA39B089EF4615 | ECFF4017D020B4B6 | 7E77384C772ED802 |
|  {\textsf {IV}}[0] |  {\textsf {IV}}[1] |  {\textsf {IV}}[2] |  {\textsf {IV}}[3] |
| --- | --- | --- | --- |
| 53156A66292808F6 | B2C4F362B204C2BC | B84B7213BFA05C4E | 976CEB7C1B299F73 |
|  {\textsf {IV}}[4] |  {\textsf {IV}}[5] |  {\textsf {IV}}[6] |  {\textsf {IV}}[7] |
| DF0CC63C0570AE97 | DA4441BAA486CE3F | 6559F5D9B5F2ACC2 | 22DACF19B4B52A16 |
|  {\textsf {IV}}[8] |  {\textsf {IV}}[9] |  {\textsf {IV}}[10] |  {\textsf {IV}}[11] |
| BBCDACEFDE80953A | C9891A2879725B3E | 7C9FE6330237E440 | A30BA550553F7431 |
|  {\textsf {IV}}[12] |  {\textsf {IV}}[13] |  {\textsf {IV}}[14] |  {\textsf {IV}}[15] |
| BB08043FB34E3E30 | A0DEC48D54618EAD | 150317267464BC57 | 32D1501FDE63DC93 |
|  {\textsf {IV}}[0] |  {\textsf {IV}}[1] |  {\textsf {IV}}[2] |  {\textsf {IV}}[3] |
| --- | --- | --- | --- |
| ADD50F3C7F07094E | E3F3CEE8F9418A4F | B527ECDE5B3D0AE9 | 2EF6DEC68076F501 |
|  {\textsf {IV}}[4] |  {\textsf {IV}}[5] |  {\textsf {IV}}[6] |  {\textsf {IV}}[7] |
| 8CB994CAE5ACA216 | FBB9EAE4BBA48CC7 | 650A526174725FEA | 1F9A61A73F8D8085 |
|  {\textsf {IV}}[8] |  {\textsf {IV}}[9] |  {\textsf {IV}}[10] |  {\textsf {IV}}[11] |
| B6607378173B539B | 1BC99853B0C0B9ED | DF727FC19B182D47 | DBEF360CF893A457 |
|  {\textsf {IV}}[12] |  {\textsf {IV}}[13] |  {\textsf {IV}}[14] |  {\textsf {IV}}[15] |
| 4981F5E570147E80 | D00C4490CA7D3E30 | 5D73940C0E4AE1EC | 894085E2EDB2D819 |