What is a Algebraic Hashing? - minseok127/HashSimulator GitHub Wiki

Algebraic Hashing

Algebraic Hashing์€ polynomial modulo 2๋ฅผ ํ™œ์šฉํ•˜๋Š” Hash Function์ž…๋‹ˆ๋‹ค.

key๊ฐ€ n๊ฐœ์˜ bit๋กœ ๊ตฌ์„ฑ๋˜๊ณ  ๊ฒฐ๊ณผ๋ฌผ์ธ Hash code๊ฐ€ m๊ฐœ์˜ bit๋กœ ๊ตฌ์„ฑ๋œ๋‹ค๋ฉด

key๋Š” ๊ฐ ๊ณ„์ˆ˜๊ฐ€ key์˜ bit์— ๋Œ€์‘๋˜๋Š” (n - 1)์ฐจ ๋‹คํ•ญ์‹์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ ,

Hash code๋Š” ๊ฐ ๊ณ„์ˆ˜๊ฐ€ Hash code์˜ bit์— ๋Œ€์‘๋˜๋Š” (m - 1)์ฐจ ๋‹คํ•ญ์‹์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Hash Function์— ์‚ฌ์šฉ๋˜๋Š” m์ฐจ ๋‹คํ•ญ์‹ P์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

P ๋˜ํ•œ ๋ชจ๋“  ๊ณ„์ˆ˜๊ฐ€ 0 ํ˜น์€ 1๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ 3๊ฐœ์˜ ๋‹คํ•ญ์‹๋“ค์€ K(x) mod P(x) = H(x)์™€ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์˜ํ•  ์ ์€ mod์—ฐ์‚ฐ์€ integer๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ xor์—ฐ์‚ฐ์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด n = 15, m = 10์ด๊ณ 

P(x) = 1*x^10 + 0*x^9 + 1*x^8 + 0*x^7 + 0*x^6 + 1*x^5 + 1*x^4 + 0*x^3 + 1*x^2 + 1*x + 1*x^0  
K(x) = 1*x^14 + 1*x^13 + 1*x^12 + 0*x^11 + 1*x^10 + 0*x^9 + 1*x^8 + 0*x^7 + 0*x^6 + 1*x^5 + 1*x^4 + 0*x^3 + 1*x^2 + 1*x + 1*x^0 

์ด์™€ ๊ฐ™์€ ๊ฐ€์ • ํ•˜์— Hash code๋ฅผ ๊ตฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

K(x) mod P(x)๋ฅผ ์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•ด๋ณธ๋‹ค๋ฉด

                                           1 1 0 1 1
                      ______________________________
1 0 1 0 0 1 1 0 1 1 1| 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1
                   xor 1 0 1 0 0 1 1 0 1 1 1
                      ______________________________
                         1 0 0 1 1 0 0 1 0 0 0
                   xor   1 0 1 0 0 1 1 0 1 1 1
                      ______________________________
                           0 1 1 1 1 1 1 1 1 1 1
                   xor     0 0 0 0 0 0 0 0 0 0 0
                      ______________________________
                             1 1 1 1 1 1 1 1 1 1 1
                   xor       1 0 1 0 0 1 1 0 1 1 1
                      ______________________________
                               1 0 1 1 0 0 1 0 0 0 1   
                   xor         1 0 1 0 0 1 1 0 1 1 1
                      ______________________________
                               0 0 0 1 0 1 0 0 1 1 0 <= result

๊ฒฐ๊ณผ์ ์œผ๋กœ H(x) = x^7 + x^5 + x^2 + x, 0010100110์ด Hash code๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.