rPGP 0.10 ์ถœ์‹œ, OpenPGP์˜ ๋Ÿฌ์ŠคํŠธ ๊ตฌํ˜„

rPGP 0.10 ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ฒŒ์‹œ๋˜์–ด Rust ์–ธ์–ด๋กœ OpenPGP ํ‘œ์ค€(RFC-2440, RFC-4880) ๊ตฌํ˜„์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์ด๋ฉ”์ผ ์•”ํ˜ธํ™”๋ฅผ ์œ„ํ•œ Autocrypt 1.1 ์‚ฌ์–‘์— ์ •์˜๋œ ์ „์ฒด ๊ธฐ๋Šฅ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. rPGP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ํ”„๋กœ์ ํŠธ๋Š” ์ด๋ฉ”์ผ์„ ์ „์†ก ์ˆ˜๋‹จ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Delta Chat ๋ฉ”์‹ ์ €์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” MIT ๋ฐ Apache 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

rPGP์˜ OpenPGP ํ‘œ์ค€ ์ง€์›์€ ํ˜„์žฌ ํ•˜์œ„ ์ˆ˜์ค€ API๋กœ๋งŒ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด pgp ํฌ๋ ˆ์ดํŠธ ํŒจํ‚ค์ง€๋Š” ๋ฌผ๋ก  ๋ช‡ ๋…„ ์ „์— ๋…๋ฆฝ์ ์ธ ๋ณด์•ˆ ๊ฐ์‚ฌ๋ฅผ ํ†ต๊ณผํ•œ RSA ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•œ rsa ํŒจํ‚ค์ง€๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํƒ€์› ๊ณก์„  ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Curve25519-dalek ํŒจํ‚ค์ง€๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Node.js ํ”Œ๋žซํผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด WebAssembly ์ค‘๊ฐ„ ์ฝ”๋“œ๋กœ์˜ ์ปดํŒŒ์ผ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ์šด์˜ ์ฒด์ œ๋Š” Linux, Android, Windows, iOS ๋ฐ macOS์ž…๋‹ˆ๋‹ค.

Rust์—์„œ OpenPGP ๊ตฌํ˜„๋„ ์ œ๊ณตํ•˜๋Š” Sequoia ํ”„๋กœ์ ํŠธ์™€๋Š” ๋‹ฌ๋ฆฌ, rPGP๋Š” MIT ๋ฐ Apache 2.0 ํ—ˆ์šฉ ๋ผ์ด์„ ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค(Sequoia ์ฝ”๋“œ๋Š” GPLv2+ ์นดํ”ผ๋ ˆํ”„ํŠธ ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ์ œ๊ณต๋จ). ๊ฐœ๋ฐœ์€ ํ•จ์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋งŒ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค(Sequoia๋Š” gpg ์œ ํ‹ธ๋ฆฌํ‹ฐ), ๋ชจ๋“  ์•”ํ˜ธํ™” ๊ธฐ๋ณธ ์š”์†Œ๋Š” Rust๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Sequoia๋Š” C๋กœ ์ž‘์„ฑ๋œ Nettle ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค).

์ถœ์ฒ˜ : opennet.ru

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