Randomness and secrets

froajnzd·2024년 12월 11일
0

real world cryptography

목록 보기
8/12
post-thumbnail
  • randomness가 무엇이고 왜 중요한가
  • 강력한 randomness를 얻고, secrets 생성하기
  • randomness의 함정

What's randomness?

Slow randomness? Use a pseudorandom number generator(PRNG)

Obtaining randomness in practice

Randomness generation and security considerations

Public randomness

Key derivation with HKDF

Managing keys and secrets

Decentralize trust with threshold cryptography

Summary

  • 어떤 숫자가 그 집합의 다른 모든 숫자들과 동일한 확률로 선택되었다면, 그 숫자는 균일하고 무작위로 선택된다
  • 엔트로피는 바이트 문자열의 무작위성을 나타내는 지표이다. high entropy는 균일하게 무작위인 바이트 문자열을 의미하며, low entropy는 쉽게 예측되는 바이트 문자열을 의미한다.
  • pseudorandom number generator(PRNGs)는 균일한 무작위 시드를 사용하여 시드가 충분히 클 경우 암호화 목적(ex. secret key)으로 사용할 수 있는 거의 무한한 양의 무작위성을 생성하는 알고리즘이다.
  • 난수를 얻으려면 프로그래밍 언어의 표준 라이브러리나 잘 알려진 암호화 라이브러리에 의존해야 한다. 이러한 기능을 사용할 수 없는 경우 운영 체제는 일반적으로 난수를 얻기 위한 인터페이스를 제공한다.
    • 윈도우: 시스템 호출 제공
    • 리눅스/FreeBSD: 시스템 호출 제공
    • 기타 Unix 계열 운영체제: /dev/urandom 파일에서 무작위성을 나타냄
  • Key derivation function(KDFs)는 편향됐지만 높은 엔트로피에서 비밀을 생성하고 싶을 때 유용하다.
  • HKDF(HMAC 기반 key derivation 함수)는 가장 많이 사용되는 KDF이다. HMAC을 기반으로 한다.
  • key management는 secrets을 지키는 영역이다. secret 보관할 장소 찾기, secret 사전 만료, secret 회전, secret이 침해되었을 때 무엇을 해야 하는지 등으로 구성된다.
  • 주요 관리 부담을 줄이기 위해 한 참가자의 신뢰를 여러 참가자로 나눌 수 있다.
profile
Hi I'm 열쯔엉

0개의 댓글