๋ธ๋ก ์ํธ GCM ๊ณผ CCM ๋ชจ๋ ํน์ฑ ( AES ์ ARIA ๊ฒฝ์ฐ )
์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ก ์ํธ ๊ฒฝ์ฐ 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๋ฐ์ดํธ ์ด์ ํ์ํจ. (๋ค๋ฅธ ๋ชจ๋์? )
์ฌ๊ธฐ์ ์/๋ณตํธํ์ ๋ชจ๋๋ณ๋ก ์ค์ ๋ก ๊ฐ๋ฐ ์ ์ ๋ ฅ๊ฐ์ ๋ํ ํน์ฑ์ ์ ๋ฆฌํด ๋ณด์๋ค.