Public-Key Crypto

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

๋Œ€๋ถ€๋ถ„์˜ CTF ๊ณ ๋‚œ๋„ crypto๋Š” ์—ฌ๊ธฐ๋กœ ๋ชจ์ž…๋‹ˆ๋‹ค: RSA, ECC/ECDSA, lattices, ๊ทธ๋ฆฌ๊ณ  ์•ฝํ•œ randomness.

  • SageMath (LLL/lattices, modular arithmetic): https://www.sagemath.org/
  • RsaCtfTool (Swiss-army knife): https://github.com/Ganapati/RsaCtfTool
  • factordb (quick factor checks): http://factordb.com/

RSA

n,e,c์™€ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ํžŒํŠธ(๊ณต์œ ๋œ modulus, low exponent, partial bits, ๊ด€๋ จ ๋ฉ”์‹œ์ง€)๊ฐ€ ์žˆ์„ ๋•Œ ์—ฌ๊ธฐ์„œ ์‹œ์ž‘ํ•˜์„ธ์š”.

RSA Attacks

ECC / ECDSA

์„œ๋ช…์ด ๊ด€์—ฌ๋œ ๊ฒฝ์šฐ, ์–ด๋ ค์šด ์ˆ˜ํ•™์„ ๊ฐ€์ •ํ•˜๊ธฐ ์ „์— ๋จผ์ € nonce ๋ฌธ์ œ(reuse/bias/leaks)๋ฅผ ํ…Œ์ŠคํŠธํ•˜์„ธ์š”.

ECDSA nonce reuse / bias

๋‘ ์„œ๋ช…์ด ๋™์ผํ•œ nonce k๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋ฉด private key๋ฅผ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„๋ก k๊ฐ€ ์™„์ „ํžˆ ๊ฐ™์ง€ ์•Š๋”๋ผ๋„, ์„œ๋ช…๋“ค ๊ฐ„์˜ nonce ๋น„ํŠธ์— ๋Œ€ํ•œ bias/leakage๋Š” lattice ๋ณต๊ตฌ์— ์ถฉ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ”ํ•œ CTF ํ…Œ๋งˆ).

๊ธฐ์ˆ ์  ๋ณต๊ตฌ (k ์žฌ์‚ฌ์šฉ ์‹œ):

ECDSA ์„œ๋ช… ๋ฐฉ์ •์‹ (group order n):

  • r = (kG)_x mod n
  • s = k^{-1}(h(m) + r*d) mod n

๋™์ผํ•œ k๊ฐ€ ๋‘ ๋ฉ”์‹œ์ง€ m1, m2์— ๋Œ€ํ•ด ์žฌ์‚ฌ์šฉ๋˜์–ด ์„œ๋ช… (r, s1) ๋ฐ (r, s2)๋ฅผ ์ƒ์„ฑํ•˜๋ฉด:

  • k = (h(m1) - h(m2)) * (s1 - s2)^{-1} mod n
  • d = (s1*k - h(m1)) * r^{-1} mod n

Invalid-curve attacks

ํ”„๋กœํ† ์ฝœ์ด ํฌ์ธํŠธ๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ณก์„ (on-curve) ์œ„์— ์žˆ๊ณ  ์˜ฌ๋ฐ”๋ฅธ subgroup์— ์†ํ•˜๋Š”์ง€๋ฅผ ๊ฒ€์ฆํ•˜์ง€ ์•Š์œผ๋ฉด, ๊ณต๊ฒฉ์ž๋Š” ์•ฝํ•œ ๊ทธ๋ฃน์—์„œ ์—ฐ์‚ฐ์„ ๊ฐ•์ œํ•ด ๋น„๋ฐ€์„ ํšŒ์ˆ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์  ๋ฉ”๋ชจ:

  • ํฌ์ธํŠธ๊ฐ€ on-curve์ด๋ฉฐ ์˜ฌ๋ฐ”๋ฅธ subgroup์— ์†ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•˜์„ธ์š”.
  • ๋งŽ์€ CTF ๊ณผ์ œ๋Š” ์ด๋ฅผ โ€œserver๊ฐ€ ๊ณต๊ฒฉ์ž๊ฐ€ ์„ ํƒํ•œ ํฌ์ธํŠธ์— secret scalar๋ฅผ ๊ณฑํ•˜๊ณ  ๋ฌด์–ธ๊ฐ€๋ฅผ ๋ฐ˜ํ™˜โ€œํ•˜๋Š” ์‹์œผ๋กœ ๋ชจ๋ธ๋งํ•ฉ๋‹ˆ๋‹ค.

Tooling

  • SageMath for curve arithmetic / lattices
  • ecdsa Python library for parsing/verification

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ