$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

[국내논문] NIST SP 800-90B의 최소 엔트로피 추정 알고리즘에 대한 고속 구현 및 효율적인 메모리 사용 기법
High-Speed Implementation and Efficient Memory Usage of Min-Entropy Estimation Algorithms in NIST SP 800-90B 원문보기

情報保護學會論文誌 = Journal of the Korea Institute of Information Security and Cryptology, v.28 no.1, 2018년, pp.25 - 39  

김원태 (국민대학교 금융정보보안학과) ,  염용진 (국민대학교 금융정보보안학과) ,  강주성 (국민대학교 금융정보보안학과)

초록
AI-Helper 아이콘AI-Helper

최근 NIST에서는 암호학적 난수발생기의 핵심 요소인 엔트로피 소스의 안전성을 평가하기 위한 방법을 다루고 있는 SP 800-90B 문서의 두 번째 수정안과 이를 Python으로 구현한 코드를 제공하였다. SP 800-90B에서의 엔트로피 소스에 대한 안전성 평가는 엔트로피 소스의 출력 표본 수열로부터 도출한 여러 가지 추정량(estimator)에 기반 하여 최소 엔트로피를 추정하는 과정이다. 최소 엔트로피 추정 과정은 IID 트랙과 non-IID 트랙으로 대별되어 진행된다. IID 트랙의 경우 MCV 추정량만을 사용하여 속도 측면에서 무리가 없다. 반면 non-IID 트랙에서는 MCV를 포함한 총 10 가지의 추정량을 적용해 최소 엔트로피를 추정하게 된다. NIST의 코드에서 non-IID 트랙의 1 회 구동 시간은 약 20 분이 소요되고, 사용되는 메모리는 5.5 GB를 넘긴다. 이는 다양한 잡음원으로 반복적인 평가를 수행해야 하는 평가 기관 또는 여러 환경에서 실험을 수행해야 하는 개발자나 연구자 입장에서는 NIST에서 제공한 Python 코드를 이용하는 것이 불편할 수 있으며, 환경에 따라 실행이 불가할 수도 있다. 본 논문에서는 SP 800-90B의 최소 엔트로피 추정 방법에 대한 고속 구현과 효율적인 메모리 사용 기법을 제시한다. 주요 연구 결과로 MultiMCW 추정 방법에 C++ 코드의 장점을 적용한 고속화 방법, MultiMMC 추정 방법의 데이터 저장 방식을 재구성하여 메모리 사용량을 현저하게 감소시킴과 동시에 고속화한 방법, LZ78Y 추정 방법에 데이터 저장 방식의 재구성을 통한 고속화 기법 등을 제안한다. 우리의 개선된 방법이 종합적으로 적용된 C++ 코드는 NIST에서 제공한 기존의 Python 코드와 비교할 때, 속도는 14 배 빠르고 메모리 사용량은 1/13로 감소하는 효과를 보인다.

Abstract AI-Helper 아이콘AI-Helper

NIST(National Institute of Standards and Technology) has recently published SP 800-90B second draft which is the document for evaluating security of entropy source, a key element of a cryptographic random number generator(RNG), and provided a tool implemented on Python code. In SP 800-90B, the secur...

Keyword

질의응답

핵심어 질문 논문에서 추출한 답변
암호학적 난수발생기는 어떻게 구성되는가?  암호시스템과 보안 응용 프로그램의 안전성을 위해 사용되는 난수는 예측 불가능성(unpredictability) 과 독립성(independence)을 만족하도록 암호학적 난수발생기에의해 생성된다. 암호학적 난수발생기는 진난수생성기(TRNG)와 의사난수발생기(PRNG)가 안전하게 결합하여 구성된다. 이 중에서 진난수생성기 부분은 초기 엔트로피를 생성하므로 보통 엔트로피 소스(entropy source)로 분류된다.
Cython 언어를 이용한 구현 방법이 필요해지는 기존 언어들의 문제점은 무엇인가? 현재 SP 800-90B 는 두 번째 드래프트 단계로 NIST는 [6]에서 머신 러닝을 이용한 프리딕터 엔트로피 추정법을 업데이트 예정 사항으로 언급하였고, Python에는 다양한 머신 러닝 프로그램이 구현되어 있기 때문에 NIST에서 SP 800-90B를 Python으로 구현하였다고 생각된다. 하지만 본문에서 언급한 것과 같이 Python에서 제공하는 함수는 엔트로피 추정 목적 이외의 기능을 수행하기 때문에 고속 구현에 적합하지 않다. 반면 C++의 경우 머신러닝관련 프로그램이 Python에 비해 상대적으로 부족하기 때문에 많은 기능을 모두 구현해야 하는 단점을 가진다. 이에 대한 해결책으로 Cython 언어를 이용한 구현 방법을 추후 연구 과제로 남긴다.
안전한 난수란?  암호학적으로 안전한 난수란 암호학적 난수발생기 에 의해서 생성되는 난수를 의미한다. 미국 NIST(National Institute of Standards and Technology)의 SP 800-90A, B, C에서는 이러한 암호학적 난수발생기를 구성하는 방법과 그 안전성에 대한 내용을 다루고 있다.
질의응답 정보가 도움이 되었나요?

저자의 다른 논문 :

LOADING...

활용도 분석정보

상세보기
다운로드
내보내기

활용도 Top5 논문

해당 논문의 주제분야에서 활용도가 높은 상위 5개 콘텐츠를 보여줍니다.
더보기 버튼을 클릭하시면 더 많은 관련자료를 살펴볼 수 있습니다.

관련 콘텐츠

오픈액세스(OA) 유형

FREE

Free Access. 출판사/학술단체 등이 허락한 무료 공개 사이트를 통해 자유로운 이용이 가능한 논문

유발과제정보 저작권 관리 안내
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로