VMAC
VMACVMAC는 Ted Krovetz와 Wei Dai가 2007년4월에 제안한 유니버설해시를 사용한 블록암호 기반의 메시지 인증 코드(MAC) 알고리즘입니다.이 알고리즘은 정식 [citation needed]분석에 의해 뒷받침되는 고성능을 위해 설계되었습니다.
VMAC는 64비트 CPU 아키텍처의 소프트웨어에서 탁월한 성능을 발휘하면서도 32비트 [citation needed]아키텍처에서는 뛰어난 성능을 발휘하도록 설계되었습니다.측정된 속도는 64비트 아키텍처에서 바이트당 1/2 CPU 사이클(CPB), 데스크톱 32비트 프로세서에서는 5CPB 미만, 임베디드 32비트 [1]아키텍처에서는 약 10CPB입니다.UMAC는 32비트 아키텍처에 최적화된 밀접하게 관련된 VMAC를 제공합니다.
개요
VMAC는 Wegman과 [2][3]Carter 스타일의 MAC입니다.고속 "범용" [citation needed]해시 함수를 사용하여 입력 메시지 M을 짧은 문자열로 해시한다.이 짧은 문자열은 의사 난수 패드와 함께 결합되어 VMAC 태그가 생성됩니다.시큐러티는, 랜덤으로 선택된 비밀 해시 함수와 의사 난수 패드를 공유하는 송신측과 수신측에 의해서 다릅니다.이는 키 해시함수 H와 의사난수 F를 사용하여 실현됩니다.태그는 계산을 수행하여 생성됩니다.
태그 = HK1(M) + FK2(Nonce)
여기서 K1과 K2는 송신자와 수신자가 공유하는 비밀 랜덤키이며, Nonce는 생성된 태그에 따라 변화하는 값입니다.수신자는 송신자가 사용한 난스를 인식할 필요가 있기 때문에, 난스를 동기화하는 몇개의 방법을 사용할 필요가 있습니다.이를 수행하려면 메시지 및 태그와 함께 난스를 명시적으로 전송하거나 시퀀스 번호 등 반복되지 않는 값의 사용에 동의합니다.난스를 비밀로 할 필요는 없지만 VMAC 키의 라이프 타임 동안 메시지마다 다른 난스가 사용되도록 주의해야 합니다.
VMAC는 키 달린 해시 함수H로서 VHASH라고 불리는 함수(이 문서에서도 지정되어 있습니다)를 사용하고, 디폴트 실장에서는 AES 블록 암호를 사용하는 의사 난수 F 를 사용합니다.VMAC에서는 사용 중인 블록 암호의 블록 크기까지 임의의 64비트 배수의 태그 길이를 사용할 수 있습니다.즉, AES를 사용하는 경우 VMAC는 64비트 또는 128비트 태그를 생성할 수 있습니다.
Wegman-Carter MAC 이론과 VMAC 분석에 따르면 진정으로 랜덤한 키와 패드로 VMAC를 '인스턴트'할 경우 공격자가 선택한 메시지에 대해 올바른 태그를 생성할 확률은 각각 64비트 또는 128비트인 경우 1/260120 미만입니다.공격자가 N개의 위조를 시도하면 하나 이상의 태그가 올바르게 표시될 확률이 선형적으로 증가하여 N120/2 또는60 N/2보다 작습니다.AES를 사용하여 키와 패드를 생성하는 VMAC의 적용 구현에서는 이러한 위조 가능성이 AES의 보안과 관련하여 소량 증가합니다.AES가 안전한 한 이 작은 가법 용어는 실제 공격에 있어서 의미가 없습니다.자세한 내용은 사양을 참조하십시오.VMAC 보안 분석은 저자인 Wei Dai와 Ted Krovetz에 [citation needed][4]의해 수행되었습니다.
실장
레퍼런스
- ^ T. Krovetz and W. Dai (2007). "VMAC: Message Authentication Code using Universal Hashing". CFRG Working Group. IETF. Retrieved 2010-08-12.
- ^ J. Carter; M. Wegman (1977). "Universal classes of hash functions". Proceedings of the Ninth Annual ACM Symposium on Theory of Computing. ACM: 106–112. doi:10.1145/800105.803400. S2CID 1302091.
- ^ J. Carter; M. Wegman (1981). "New hash functions and their use in authentication and set equality". Journal of Computer and System Sciences. 22 (3): 265–279. doi:10.1016/0022-0000(81)90033-7.
- ^ T. Krovetz (2006). "Message authentication on 64-bit architectures" (PDF). Lecture Notes in Computer Science, Proceedings of the 13th International Conference on Selected Areas in Cryptography. Springer-Verlag: 327–341. ISSN 0302-9743.
- ^ http://www.fastcrypto.org/vmac/vmac.h
- ^ http://www.fastcrypto.org/vmac/vmac.c
- ^ "Crypto++: vmac.h Source File". www.cryptopp.com.
- ^ "Crypto++: vmac.cpp Source File". www.cryptopp.com.
- ^ http://www.fastcrypto.org/vmac/vmac.txt[베어 URL 플레인텍스트 파일]
외부 링크
- VMAC: 유니버설해싱을 사용한 메시지 인증 코드 - 인터넷 초안
- VMAC 홈페이지
- VMAC Wiki 엔트리의 암호화