PKI/Cryptography

๋ธ”๋ก ์•”ํ˜ธ GCM ๊ณผ CCM ๋ชจ๋“œ ํŠน์„ฑ ( AES ์™€ ARIA ๊ฒฝ์šฐ )

JayKim๐Ÿ™‚ 2023. 5. 3. 10:18

์ผ๋ฐ˜์ ์œผ๋กœ ๋ธ”๋ก ์•”ํ˜ธ ๊ฒฝ์šฐ IV ๊ฐ’์€ 16๋ฐ”์ดํŠธ ๊ธธ์ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
๋ฌผ๋ก  DES ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฒฝ์šฐ๋Š” 8๋ฐ”์ดํŠธ์ด๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” AES, ARIA์™€ ๊ฐ™์ด ํ‚ค ๊ธธ์ด๋ฅผ 16 ๋ฐ”์ดํŠธ ์ด์ƒ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด๋‹ค.

ํ•˜์ง€๋งŒ GCM ๋˜๋Š” CCM ๋ชจ๋“œ ๊ฒฝ์šฐ IV ๊ธธ์ด๊ฐ€ ์ข€ ๋” ๋‹ค์–‘ํ•˜๊ฒŒ ์“ฐ์ธ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ธ์ฆ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” Tag ๊ฐ’์˜ ๊ธธ์ด์—๋„ ์ œํ•œ์ด ์žˆ๋‹ค.

๋ฌผ๋ก  CTR ๋ชจ๋“œ ๊ฒฝ์šฐ ์•ž์ชฝ 12๋ฐ”์ดํŠธ ์‚ฌ์šฉํ•˜๊ณ  ์นด์šดํŠธ ์ •๋ณด๋กœ 4๋ฐ”์ดํŠธ ์‚ฌ์šฉํ•˜๋Š” ํŠน์„ฑ์ด ์žˆ์ง€๋งŒ ์ž…๋ ฅ IV๊ธธ์ด๋Š” 16๋ฐ”์ดํŠธ ์ด๋‹ค.

๋‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์—ฌ๊ธฐ์„œ ์ž์„ธํžˆ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ๋ฌธ์„œ์—์„œ๋Š” ์‹ค์ œ ๋‘๊ฐ€์ง€ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ ์‹œ ๊ฐ’์— ๋Œ€ํ•œ ํŠน์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•œ๋‹ค


GCM ( Galois/Counter Mode ) ์™€ CCM ( Counter with CBC-MAC ) ๋ชจ๋“œ ๋Š” ์ธ์ฆ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋œ ๋ธ”๋ก ์•”ํ˜ธ์ด๋‹ค.
authenticated encryption with associated data ( AEAD ) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•„ ๋‘๊ฐ€์ง€ ๋ชจ๋“œ๋Š” IV์™€ Tag์— ๋Œ€ํ•œ ์ œํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค. ๋ฌผ๋ก  AAD ๊ฐ’์„ ๋„ฃ์–ด์„œ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

AEAD ํŠน์„ฑ ( ๊ณตํ†ต ํŠน์„ฑ )

  • ์†Œ์Šค ๋ฐ์ดํƒ€๊ฐ€ 16์˜ ๋ฐฐ์ˆ˜ ๊ฐ€ ์•„๋‹ˆ์–ด๋„ ๋จ ( ์ฆ‰ ์ž…๋ ฅ ๊ธธ์ด = ๊ฒฐ๊ณผ ๊ธธ์ด )
  • Additional Associated Data (AAD) ๊ฐ’๊ณผ Tag ๊ฐ’์„ ์ด์šฉํ•ด ์ธ์ฆ ๊ธฐ๋Šฅ์ด ์ง€์› ๋œ๋‹ค.
  • ์•”ํ˜ธํ™” + MAC ๊ธฐ๋Šฅ์„ ๋™์‹œ์— ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.
  • ํŒจ๋”ฉ์ด ์—†์–ด๋„ ๋œ๋‹ค ( ์ฐธ๊ณ ๋กœ CTR, OFB, CFB ๋ชจ๋“œ๋„ ํŒจ๋”ฉ์ด ์—†์–ด๋„ ๋œ๋‹ค )

GCM ๋ชจ๋“œ ํŠน์„ฑ

  • ์œ ํšจํ•œ IV ๊ธธ์ด : ์–ด๋–ค ๊ธธ์ด๋„ ๊ฐ€๋Šฅ(between 1 and 2^64 ). ํ•˜์ง€๋งŒ 12 ๋ฐ”์ดํŠธ ์‚ฌ์šฉ ์ถ”์ฒœ ํ•จ
  • Tag ๊ฐ’์€ ์ตœ๋Œ€ 16 ๋ฐ”์ดํŠธ ๊นŒ์ง€ ๊ฐ€๋Šฅ ํ•˜๋‹ค. ๊ทธ ๋ณด๋‹ค ์งง์€ ๊ธธ์ด๋Š” ์ตœ๋Œ€ ๊ธธ์ด ๊ฐ’์˜ ์š”์ฒญ ๊ธธ์ด ๊ฐ’๊ณผ ๋™์ผ ํ•˜๋‹ค.
  • GMAC์€ ๋ฐ์ดํƒ€ ๊ฐ’์„ AAD๋กœ ์ž…๋ ฅ ํ•˜๊ณ  ์‹ค์ œ ๋ฐ์ดํƒ€๋Š” ์—†๋Š” Tag ๊ฐ’์ด๋‹ค.

CCM ๋ชจ๋“œ ํŠน์„ฑ

  • ์œ ํšจํ•œ IV ๊ธธ์ด : 7, 8, 9, 10, 11, 12, 13
  • ์œ ํšจํ•œ Tag ๊ธธ์ด : 4, 6, 8, 10, 12, 14, 16
  • ๋ณตํ˜ธํ™”์‹œ Tag ๊ฐ’์ด ๋งž์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํƒ€ ๋ณตํ˜ธํ™” ์•ˆ๋จ
  • CCM ๋ชจ๋“œ ์•”/๋ณตํ˜ธํ™”๋Š” ์ดˆ๊ธฐ์— ์†Œ์Šค ๋ฐ์ดํƒ€์˜ ์ „์ฒด ๊ธธ์ด๊ฐ€ ์ž…๋ ฅ ๋˜์–ด์•ผ ํ•œ๋‹ค.
    • openssl API ๊ฒฝ์šฐ Init ํ•จ์ˆ˜์—์„œ ์ „์ฒด ๊ธธ์ด๋ฅผ ์ž…๋ ฅ์„ ์š”๊ตฌ ํ•จ. (๋‹ค๋ฅธ ๋ชจ๋“ˆ์€? )
    • openssl API ๊ฒฝ์šฐ CCM ๋ชจ๋“œ์—์„œ๋Š” AAD ๊ฐ’์ด ์ตœ์†Œ 1๋ฐ”์ดํŠธ ์ด์ƒ ํ•„์š”ํ•จ. (๋‹ค๋ฅธ ๋ชจ๋“ˆ์€? )

์—ฌ๊ธฐ์„œ ์•”/๋ณตํ˜ธํ™”์‹œ ๋ชจ๋“œ๋ณ„๋กœ ์‹ค์ œ๋กœ ๊ฐœ๋ฐœ ์‹œ ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•œ ํŠน์„ฑ์„ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค.