논스

암호학에서 논스(nonce)는 암호화 통신에서 단 한 번만 사용될 수 있는 임의의 숫자이다. 이는 각 통신 세션이 고유하도록 보장하고, 따라서 오래된 통신이 재전송 공격에서 재사용될 수 없도록 인증 프로토콜에서 발행되는 무작위 또는 의사 무작위 숫자인 경우가 많다. 논스는 초기화 벡터 및 암호화 해시 함수에서도 유용하게 사용될 수 있다.

 정의 
논스는 임시어의 정신에 따라 암호화 통신에서 한 번만 사용되는 임의의 숫자이다. 이들은 종종 무작위 또는 의사 무작위 숫자이다. 많은 논스에는 정확한 시의성을 보장하기 위해 타임스탬프가 포함되지만, 이는 조직 간의 클럭 동기화를 필요로 한다. 클라이언트 논스("cnonce")의 추가는 다이제스트 인증에서 구현된 것처럼 일부 방식으로 보안을 향상시키는 데 도움이 된다. 논스가 한 번만 사용되도록 보장하기 위해 논스는 시간 가변적이어야 하며(값에 적절히 세분화된 타임스탬프를 포함), 이전에 생성된 값이 반복될 가능성이 무시할 정도로 낮도록 충분한 무작위 비트로 생성되어야 한다. 일부 저자들은 의사 무작위성(또는 예측 불가능성)을 논스의 요구 사항으로 정의한다.

Nonce는 한 번만 또는 임시로 사용되는 것을 의미하는 중세 영어 단어이다("for the nonce" 구성으로 자주 사용됨). 이는 "then anes"("그 하나의 [목적]") 구성에서 유래했다. "number used once" 또는 이와 유사한 것을 의미한다는 잘못된 어원은 정확하지 않다.

 사용법 
 인증 
인증 프로토콜은 오래된 통신이 재전송 공격에서 재사용되지 않도록 논스를 사용할 수 있다. 예를 들어, 논스는 HTTP 다이제스트 인증에서 비밀번호의 MD5 다이제스트를 계산하는 데 사용된다. 논스는 401 인증 챌린지 응답 코드가 제시될 때마다 다르므로, 재전송 공격을 사실상 불가능하게 만든다. 인터넷을 통해 제품을 주문하는 시나리오는 재전송 공격에서 논스의 유용성을 보여주는 예시가 될 수 있다. 공격자는 암호화된 정보를 가져와 해독할 필요 없이 특정 주문을 공급업체에 계속 보낼 수 있으며, 따라서 동일한 이름과 구매 정보로 제품을 반복해서 주문할 수 있다. 논스는 주어진 메시지에 '독창성'을 부여하는 데 사용되므로, 회사가 동일한 논스로 동일한 사람으로부터 다른 주문을 받으면 해당 주문은 유효하지 않은 주문으로 폐기된다.

논스는 스트림 암호의 보안을 보장하는 데 사용될 수 있다. 동일한 키가 둘 이상의 메시지에 사용될 때 다른 논스가 사용되어 해당 키로 암호화된 다른 메시지에 대해 키스트림이 다르게 보장된다. 종종 메시지 번호가 사용된다.

비밀 논스 값은 램포트 서명 체계에서 서명자 측 비밀로 사용되며, 서명 생성 및 확인을 위해 공개 해시와 비교하기 위해 선택적으로 공개될 수 있다.

 초기화 벡터 
초기화 벡터는 일반적으로 무작위 또는 의사 무작위이기 때문에 논스라고 불릴 수 있다.

 해싱 
논스는 작업 증명 시스템에서 암호화 해시 함수의 입력을 다양하게 변경하여 특정 입력에 대해 특정 임의 조건을 충족하는 해시를 얻는 데 사용된다. 이렇게 하면 "바람직한" 해시를 생성하는 것이 확인하는 것보다 훨씬 어려워지며, 작업의 부담을 트랜잭션 또는 시스템의 한쪽으로 옮긴다. 예를 들어, 해시 함수를 사용하는 작업 증명은 스팸 메일을 방지하는 수단으로 고려되었는데, 이메일 발신자가 이메일에 대한 해시 값(나중에 유용한 해시의 사전 계산을 방지하기 위해 타임스탬프 포함)을 찾도록 강제하여 "바람직한" 해시가 얻어질 때까지 동일한 입력을 많은 값으로 해싱함으로써 임의의 수의 선행 0을 가지도록 했다.

마찬가지로, 비트코인 블록체인 해싱 알고리즘은 해시의 필요한 최소/최대 값을 변경하여 임의의 난이도로 조정될 수 있으므로, 새로운 사용자가 가입함에 따라 네트워크 계산 능력 증가에 따라 새 블록에 대한 비트코인 보상이 선형적으로 증가하지 않는다. 이는 마찬가지로 비트코인 채굴자에게 해시되는 값에 논스 값을 추가하여 해시 알고리즘 출력을 변경하도록 강제함으로써 달성된다. 암호화 해시 알고리즘은 입력에 따라 쉽게 예측할 수 없으므로, 블록체인 해싱 행위와 비트코인 보상을 받을 가능성은 일종의 복권과 같으며, 바람직한 해시를 제공하는 논스를 가장 먼저 찾는 "채굴자"에게 비트코인이 보상으로 주어진다.

 같이 보기 
 키 스트레칭
 솔트 (암호학)
 임시어

 각주 

 외부 링크 
  – HTTP 인증: 기본 및 다이제스트 액세스 인증
  – 논스를 사용한 견고한 명시적 혼잡 알림(ECN) 신호
  – UMAC: 범용 해싱을 사용한 메시지 인증 코드
 웹 서비스 보안

분류:암호학