아이작(암호화기)
ISAAC (cipher)아이작(Indirection, Shift, Acumulate, add, and count)은 [1]암호학적으로 안전한 의사 난수 생성기이자 1993년 Robert J. Jenkins Jr.에 의해 설계된 스트림 암호입니다.참조 구현 소스 코드가 공용 [2]도메인 전용입니다.
작동
ISAK 알고리즘은 RC4와 유사합니다.내부 상태로는 256개의 4옥텟 정수 배열을 사용하여 결과를 256개의 4옥텟 정수 배열에 씁니다.이 배열은 결과를 한 번에 1개씩 읽고 비워둔 후 다시 계산됩니다.계산은 (i from128)-element를 사용하여 i의 모든 값(0~255)에 대해 indirection에 의해 발견된 상태 배열의 2개의 요소, 어큐뮬레이터 및 카운터를 변경하는 것으로 구성됩니다.32비트 출력 워드당 약 19개의 32비트 작업만 소요되므로 32비트 시스템에서 매우 빠릅니다.
암호 분석
암호 분석은 Marina Pudovkina(2001)[3]에 의해 수행되었습니다.그녀의 공격은 가능한 모든 초기 상태의 제곱근을 검색하는 데 필요한 시간보다 적은 복잡도로 초기 상태를 복구할 수 있습니다.실제로는 공격이 이 4 4. 10이 을 의미합니다.이 결과는 [4]ISAK의 보안에 실질적인 영향을 미치지 않습니다.
2006년에 Jean-Philippe Aumasson은 여러 개의 약한 [5]상태를 발견했다.네 번째로 제시된 (그리고 가장 작은) 약한 상태의 집합은 ISAK의 첫 번째 라운드에 대해 매우 편향된 출력으로 이어지고 RC4의 약점과 유사하게 내부 상태의 도출을 가능하게 한다.공격자는 출력만으로 제너레이터가 이러한 취약 상태 중 하나에 있는지 여부를 구별할 수 있는지 여부는 명확하지 않습니다.또한 Paul-Prenel 공격은 실제 아이작(ISAAC)이 아닌 잘못된 알고리즘에 기초하고 있기 때문에 이전 공격에[6] 결함이 있음을 보여줍니다.향상된 버전의 아이작 [4]플러스가 제안되었습니다.
암호화 이외의 사용
많은 ISAK 구현이 매우 빠르기 때문에 보안이 아닌 주로 속도를 위해 설계된 PRNG를 사용하더라도 다른 고속 PRNG와 경쟁할 수 있습니다.이와 같이 고품질과 속도를 갖춘 소수의 발전기만이 사용되고 있습니다.데이터를 [7]안전하게 덮어쓰기 위해 Unix 도구 분쇄에서 ISOAC가 사용됩니다.또한 Java Apache Commons Math 라이브러리에서 ISAAC 알고리즘이 구현됩니다.[8]
레퍼런스
- ^ 로버트 J. 젠킨스 주니어, 아이작Fast Software Encryption 1996, 페이지 41-49.
- ^ 아이작 암호
- ^ Marina Pudovkina, ISOAC 키스트림 생성기에 대한 알려진 평문 공격, 2001, Cryptology ePrint Archive: Report 2001/049, [1].
- ^ a b "On the pseudo-random generator ISAAC" (PDF). Cryptology ePrint Archive. Retrieved 21 August 2016.
- ^ 장 필리프 오마송, 의사 랜덤 생성기 아이작에 대해서요암호학 ePrint 아카이브, 보고서 2006/438, 2006.
- ^ Souradyuti Paul, Bart Prenel, 어레이 및 모듈러 추가를 기반으로 한 스트림 암호의 보안에 대하여Asiacrypt 2006.
- ^ GNU coreutils git
- ^ Apache Commons 산술 참조
외부 링크
- 아이작 공식 웹사이트
- Rosetta Code에서 여러 개의 ISOAC 구현
- Pascal/Delphi 포트
- 산술::랜덤:ISAAC, 알고리즘의 Perl 모듈 구현
- isaac.js, JavaScript 구현