PKI/Cryptography

RSA ํ‚ค ๊ธธ์ด๊ฐ€ 1๋ฐ”์ดํŠธ ์ฐจ์ด ๋‚˜๋Š” ์ด์œ 

JayKim๐Ÿ™‚ 2023. 5. 16. 11:19

๋ณดํ†ต RSA ๊ฐœ์ธํ‚ค๋‚˜ ๊ณต๊ฐœํ‚ค ๊ฒฝ์šฐ
2048 bit ํ‚ค ๊ฒฝ์šฐ ์ฆ‰ 256 ๋ฐ”์ดํŠธ ์ด๋‹ค. ํ•˜์ง€๋งŒ DER ๋ทฐ์–ด ๊ฐ™์€ ํˆด๋กœ ๋ณด๊ฒŒ ๋˜๋ฉด
256 ๋ฐ”์ดํŠธ์ธ ๊ฒฝ์šฐ๋„ ์žˆ๊ณ  257 ๋ฐ”์ดํŠธ ์ธ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ๊ฐ’์ด INTEGER ํ˜•์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
INTEGER ํ˜•์˜ ์ตœ์ƒ์œ„ ๋น„ํŠธ๋Š” ๋ถ€ํ˜ธ(์Œ์ˆ˜/์–‘์ˆ˜) ๋น„ํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

RSA ํ‚ค 2048 ๋น„ํŠธ ์ •๋ณด ๊ฒฝ์šฐ INTEGER ํ˜•์˜ ๊ฐ’์œผ๋กœ์„œ
02 82 01 00 xxxxxxxxxxx ์ด๋ ‡๊ฒŒ 01 00 ์œผ๋กœ 256 Bytes ๋กœ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ 
02 82 01 01 xxxxxxxxxxx ์ด๋ ‡๊ฒŒ 01 01 ์œผ๋กœ 257 Bytes ๋กœ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.

๊ธธ์ด ๊ฐ’์ด 01 01 ๋Š” ๊ฐ’์˜ ์ฒซ๋ฒˆ์งธ๋Š” ํ•ญ์ƒ 0x00 ์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.
๊ทธ ์ด์œ ๋Š” ์•„๋ž˜ INTEGER ์—์„œ BER ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์„ ๋ณด๋ฉด ๋œ๋‹ค.

Integer value BER encoding
0 02 01 00
127 02 01 7F
128 02 02 00 80
256 02 02 01 00
-128 02 01 80
-129 02 02 FF 7F

์œ„์— ์˜ˆ์ œ์—์„œ ๋ณด๋ฉด 128 ์ธ๊ฒฝ์šฐ 00 80 ๊ฐ’์ด ์“ฐ์ธ๋‹ค.
์ด๋ ‡๊ฒŒ ์ตœ์ƒ์œ„ ๋น„ํŠธ๋Š” ๊ธฐํ˜ธ ๋น„ํŠธ๋กœ ์‚ฌ์šฉ๋˜์–ด์„œ ์ตœ์ƒ์œ„ ๋น„ํŠธ๊ฐ€ 1๋กœ ๋˜๋ฉด ์Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ์–ด์„œ ์•ž์— 00 ๊ฐ’์ด ์ถ”๊ฐ€๋œ๋‹ค.
์ตœ์ƒ์œ„ ๊ฐ’์ด 0x80 ๋ณด๋‹ค ํฌ๋ฉด ํ•ญ์ƒ 0x00 ์ด ์ถ”๊ฐ€ ๋˜์–ด์„œ 1๋ฐ”์ดํŠธ์˜ ๊ธธ์ด ์ฐจ์ด๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์ด๋‹ค.

์‹ค์ œ๋กœ ์Œ์ˆ˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” 0x80 ์ด์ƒ์ด ์™€๋„ ํ•œ๋ฐ”์ดํŠธ๊ฐ€ ๋Š˜์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.
ํ•˜์ง€๋งŒ RSA ํ‚ค ๊ฐ’์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’์€ ๋ชจ๋‘ ์–‘์ˆ˜ ์ด์–ด์•ผ ํ•ด์„œ 0x00 ์ด ์ œ์ผ ์•ž์— ๋ถ™๊ฒŒ ๋œ๋‹ค.

์ฆ‰ 0x80 ์ด์ƒ์ด ๊ฐ’์€ ํ•ญ์ƒ 0x00 0xAA ๋“ฑ ์ด๋ ‡๊ฒŒ ์•ž์— 0x00 ์ด ์ถ”๊ฐ€ ๋˜์–ด ๊ธธ์ด 1๋ฐ”์ดํŠธ๊ฐ€ ์ถ”๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋ ‡๊ฒŒ 1๋ฐ”์ดํŠธ์˜ ์ฐจ์ด๊ฐ€ ๋‚˜๋Š”๊ฒƒ์€ ๊ผญ RSA ํ‚ค ๊ธธ์ด์— ํ•ด๋‹น ํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ์•„๋‹ˆ๋ผ
์ผ๋ฐ˜์ ์œผ๋กœ INTEGER ํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋‘ ๊ฐ™์€ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.

๋ฐ˜์‘ํ˜•