์•”ํ˜ธํ™” ํ•ด์‹œ ํ•จ์ˆ˜ BLAKE3 1.0์˜ ์ฐธ์กฐ ๊ตฌํ˜„ ์ถœ์‹œ

์•”ํ˜ธํ™” ํ•ด์‹œ ํ•จ์ˆ˜ BLAKE3 1.0์˜ ์ฐธ์กฐ ๊ตฌํ˜„์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” SHA-3 ์ˆ˜์ค€์—์„œ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋™์‹œ์— ๋งค์šฐ ๋†’์€ ํ•ด์‹œ ๊ณ„์‚ฐ ์„ฑ๋Šฅ์œผ๋กœ ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค. 16KB ํŒŒ์ผ์— ๋Œ€ํ•œ ํ•ด์‹œ ์ƒ์„ฑ ํ…Œ์ŠคํŠธ์—์„œ 3๋น„ํŠธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” BLAKE256์€ SHA3-256๋ณด๋‹ค 17๋ฐฐ, SHA-256์€ 14๋ฐฐ, SHA-512๋Š” 9๋ฐฐ, SHA-1์€ 6๋ฐฐ, BLAKE2b๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. 5 ํšŒ. ๋งค์šฐ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ƒ๋‹นํ•œ ๊ฒฉ์ฐจ๊ฐ€ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด BLAKE3์€ 256GB์˜ ๋ฌด์ž‘์œ„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํ•ด์‹œ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ SHA-8๋ณด๋‹ค 1๋ฐฐ ๋น ๋ฅธ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. BLAKE3 ์ฐธ์กฐ ๊ตฌํ˜„ ์ฝ”๋“œ๋Š” ์ด์ค‘ ๊ณต๊ฐœ ๋„๋ฉ”์ธ(CC0) ๋ฐ Apache 2.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ C ๋ฐ Rust ๋ฒ„์ „์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์•”ํ˜ธํ™” ํ•ด์‹œ ํ•จ์ˆ˜ BLAKE3 1.0์˜ ์ฐธ์กฐ ๊ตฌํ˜„ ์ถœ์‹œ

ํ•ด์‹œ ๊ธฐ๋Šฅ์€ ํŒŒ์ผ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ, ๋ฉ”์‹œ์ง€ ์ธ์ฆ, ์•”ํ˜ธํ™” ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ๊ณผ ๊ฐ™์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. BLAKE3์€ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ํ•ด์‹œ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹ฑ์šฉ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ๊ฒฝ์šฐ ๋Š๋ฆฐ ํ•ด์‹œ ๊ธฐ๋Šฅ yescrypt, bcrypt, scrypt ๋˜๋Š” Argon2๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ณ ๋ ค ์ค‘์ธ ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ํ•ด์‹œ๋œ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์— ๋ฏผ๊ฐํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ถฉ๋Œ ์„ ํƒ ๋ฐ ์‚ฌ์ „ ์ด๋ฏธ์ง€ ์ฐพ๊ธฐ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค.

์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์œ ๋ช…ํ•œ ์•”ํ˜ธํ™” ์ „๋ฌธ๊ฐ€(Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn)์— ์˜ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ BLAKE2 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋ฐœ์„ ๊ณ„์†ํ•˜๊ณ  Bao ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธ”๋ก์ฒด์ธ ํŠธ๋ฆฌ๋ฅผ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. . BLAKE2(BLAKE2b, BLAKE2s)์™€ ๋‹ฌ๋ฆฌ BLAKE3์€ ๋น„ํŠธ ์‹ฌ๋„ ๋ฐ ํ•ด์‹œ ํฌ๊ธฐ์— ์–ฝ๋งค์ด์ง€ ์•Š๊ณ  ๋ชจ๋“  ํ”Œ๋žซํผ์— ๋Œ€ํ•ด ๋‹จ์ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ผ์šด๋“œ ์ˆ˜๋ฅผ 10์—์„œ 7๋กœ ์ค„์ด๊ณ  ๋ธ”๋ก์„ 1KB ๋‹จ์œ„๋กœ ๋ณ„๋„๋กœ ํ•ด์‹ฑํ•จ์œผ๋กœ์จ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ์ž‘์ž์— ๋”ฐ๋ฅด๋ฉด ๋™์ผํ•œ ์ˆ˜์ค€์˜ ์‹ ๋ขฐ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ 7๋ผ์šด๋“œ ๋Œ€์‹  10๋ผ์šด๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์„ค๋“๋ ฅ ์žˆ๋Š” ์ˆ˜ํ•™์  ์ฆ๊ฑฐ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค(๋ช…ํ™•์„ฑ์„ ์œ„ํ•ด 7์ดˆ ํ›„์— ๋ฏน์„œ์—์„œ ๊ณผ์ผ์„ ํ˜ผํ•ฉํ•˜๋Š” ์˜ˆ๋ฅผ ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ๊ณผ์ผ์€ ์ด๋ฏธ ์™„์ „ํžˆ ํ˜ผํ•ฉ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ 3์ดˆ๋ฅผ ๋” ์ถ”๊ฐ€ํ•ด๋„ ํ˜ผํ•ฉ๋ฌผ์˜ ๋†๋„์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ถ€ ์—ฐ๊ตฌ์ž๋“ค์€ ํ•ด์‹œ์— ๋Œ€ํ•ด ์•Œ๋ ค์ง„ ๋ชจ๋“  ๊ณต๊ฒฉ์— ๋Œ€์‘ํ•˜๋Š” ๋ฐ ํ˜„์žฌ 7๋ผ์šด๋“œ๊ฐ€ ์ถฉ๋ถ„ํ•˜๋”๋ผ๋„ ํ–ฅํ›„ ์ƒˆ๋กœ์šด ๊ณต๊ฒฉ์ด ์‹๋ณ„๋˜๋ฉด ์ถ”๊ฐ€ 3๋ผ์šด๋“œ๊ฐ€ ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฏฟ์œผ๋ฉฐ ์˜๊ตฌ์‹ฌ์„ ํ‘œ๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ BLAKE3์—์„œ๋Š” ์ŠคํŠธ๋ฆผ์„ 1KB ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๊ฐ ์กฐ๊ฐ์€ ๋…๋ฆฝ์ ์œผ๋กœ ํ•ด์‹ฑ๋ฉ๋‹ˆ๋‹ค. ์กฐ๊ฐ๋“ค์˜ ํ•ด์‹œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋จธํด ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋‚˜์˜ ํฐ ํ•ด์‹œ๊ฐ€ ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ถ„ํ• ์„ ํ†ตํ•ด ํ•ด์‹œ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋ณ‘๋ ฌํ™”ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 4์Šค๋ ˆ๋“œ SIMD ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 4๊ฐœ ๋ธ”๋ก์˜ ํ•ด์‹œ๋ฅผ ๋™์‹œ์— ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด SHA-* ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

BLAKE3์˜ ํŠน์ง•:

  • ๊ณ ์„ฑ๋Šฅ์ธ BLAKE3์€ MD5, SHA-1, SHA-2, SHA-3 ๋ฐ BLAKE2๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฆ…๋‹ˆ๋‹ค.
  • SHA-2๊ฐ€ ์ทจ์•ฝํ•œ ๋ฉ”์‹œ์ง€ ์—ฐ์žฅ ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ์ €ํ•ญ์„ ํฌํ•จํ•œ ๋ณด์•ˆ
  • Rust์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ SSE2, SSE4.1, AVX2, AVX-512 ๋ฐ NEON ๋ช…๋ น์–ด์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์Šค๋ ˆ๋“œ ์ˆ˜์™€ SIMD ์ฑ„๋„ ์ˆ˜์— ๊ด€๊ณ„์—†์ด ๊ณ„์‚ฐ ๋ณ‘๋ ฌํ™”๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ŠคํŠธ๋ฆผ์˜ ์ฆ๋ถ„ ์—…๋ฐ์ดํŠธ ๋ฐ ๊ฒ€์ฆ๋œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ์„ฑ
  • PRF, MAC, KDF, XOF ๋ชจ๋“œ ๋ฐ ์ผ๋ฐ˜ ํ•ด์‹œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • x86-64 ์‹œ์Šคํ…œ๊ณผ 32๋น„ํŠธ ARM ํ”„๋กœ์„ธ์„œ ๋ชจ๋‘์—์„œ ๋น ๋ฅธ ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ๋‹จ์ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

BLAKE3๊ณผ BLAKE2์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ํ•ด์‹œ ๊ณ„์‚ฐ์—์„œ ๋ฌด์ œํ•œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ์ด์ง„ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ผ์šด๋“œ ์ˆ˜๋ฅผ 10์—์„œ 7๋กœ ์ค„์ž…๋‹ˆ๋‹ค.
  • ์„ธ ๊ฐ€์ง€ ์ž‘๋™ ๋ชจ๋“œ: ํ•ด์‹ฑ, ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ ํ•ด์‹ฑ(HMAC) ๋ฐ ํ‚ค ์ƒ์„ฑ(KDF).
  • ์ด์ „์— ํ‚ค ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ธ”๋ก์ด ์ฐจ์ง€ํ–ˆ๋˜ ์˜์—ญ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ‚ค๋กœ ํ•ด์‹ฑํ•  ๋•Œ ์ถ”๊ฐ€ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ํ™•์žฅ๋œ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ–๋Š” ๊ธฐ๋Šฅ(XOF, ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ถœ๋ ฅ ๊ธฐ๋Šฅ) ํ˜•ํƒœ์˜ ๋‚ด์žฅ ์ž‘๋™ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๋ณ‘๋ ฌํ™” ๋ฐ ์œ„์น˜ ์ง€์ •(ํƒ์ƒ‰)์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€