hmacdrbg

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2024 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MaxLength                      uint64 = 0x8_0000_0000      // 엔트로피 입력 최대 길이 (max_length)
	MaxPersonalizationStringLength uint64 = 0x8_0000_0000      // 개별화 문자열 최대 허용 길이 (max_personalization_string_length) = 2 ** 35
	MaxAdditionalInputLength       uint64 = 0x8_0000_0000      // 추가 입력 최대 허용 길이 (max_additional_input_length) = 2 ** 35
	MaxNoOfBytesPerRequest                = 0x8_0000 / 8       // 난수 최대 출력 길이 (max_no_of_bits_per_request) = 2 ** 19
	ReseedInterval                 uint64 = 0x8_0000_0000_0000 // 시드별 출력값 생성 횟수 (reseed_interval) = 2 ** 48
)

Variables

This section is empty.

Functions

func GetSecurityStrengthBits

func GetSecurityStrengthBits(requested_strength int) int

Types

type State

type State struct {
	New                         func() hash.Hash // const
	ReseedInterval              uint64           // const
	PredictionResistanceRequest bool             // const

	V             []byte
	Key           []byte
	ReseedCounter uint64 // 시드 생성 이후 DRBG 인스턴스의 출력값 생성 횟수
	// contains filtered or unexported fields
}

func Instantiate

func Instantiate(
	h func() hash.Hash,
	entropyInput, nonce, personalizationString []byte,
	predictionResistanceRequest bool,
	reseedInterval uint64,
) *State

6.3 인스턴스 생성 함수(instantiate function)

HMAC_DRBG의 인스턴스 생성 함수 Instantiate_HMAC_DRBG는 엔트로피 입력, 논스, 개별화 문자열로부터 시드 seed = (Key, V )를 생성하고, 이 시드를 이용하여 내부 상태를 초기화한다.

func (*State) Generate

func (state *State) Generate(
	dst []byte,
	fnEntropyInput func() ([]byte, error),
	additionalInput []byte,
) error

6.5 생성 함수(generate function)

HMAC_DRBG의 생성 함수 Generate_HMAC_DRBG는 인스턴스의 내부 상태 중 동작 상태의 Key 를 고정하고 V 를 갱신하면서 출력값을 생성한 후, Key 와 V 를 갱신한다.

func (*State) Reseed

func (state *State) Reseed(entropyInput, additionalInput []byte)

6.4 리시드 함수(reseeding function)

HMAC_DRBG의 리시드 함수 Reseed_HMAC_DRBG는 인스턴스의 내부 상태와 엔트로피 입력, 그리고 추가 입력을 이용하여 새로운 시드 seed = (Key, V )를 생성하고, 이 값을 이용하여 내부 상태를 갱신한다.

func (*State) Update

func (state *State) Update(providedData ...[]byte)

6.2 갱신 함수(update function)

갱신 함수는 입력받은 데이터를 이용하여 HMAC_DRBG의 내부 상태를 갱신한다. 참고로 갱신 함수는 인스턴스 생성 함수와 리시드 함수에서 시드 생성을 위한 유도 함수(derivation function)의 역할도 수행한다.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL