2014-09-01 2 views
0

내 학기 프로젝트의 s-boxes에 대한 연구 논문을 다시 구현하고 싶습니다. 지금 시간이 부족합니다. 내 부분은 서로 다른 seses와 함께 aes (cbc, ecb, ctr, gcm과 같은)의 다른 모드를 테스트하는 것입니다. 나는 목적을 위해 openssl 라이브러리 1.0.1i를 사용하고있다. 분명히 나는 ​​룩업 테이블을 생성해야하고이 게시물을Openssl AES GCM-256 Htables

Generating AES (AES-256) Lookup Tables

지금은 그 테이블을 포함 할 필요가 도움이되었다. 나는 openssl 라이브러리를 통해 갔고 aes_core.c가 aes /에서 crypto_cbc128_encrypt()와 다른 모드 소스 파일에 사용되는 모든 룩업 테이블과 유용한 함수를 가지고 있음을 발견했다 ... 컴파일은 성공적 이었지만 GCM_AES_256에 대해서는 문제가 있었다. aes_cbc, aes_ctr 등과 같은 GCM_aes_256 소스 파일을 찾을 수 없습니다. 다르게 구현 되었습니까 ?? aes는 모든 모드에서 사용되므로 결국 aes_core 파일에서 동일한 조회 테이블을 사용해야합니다. 그게 아니야? 그것은 openssl에서 다르게 구현됩니까 ??

Openssl 파일에 추가로, htable을 gcm_128로 보았습니다. 이 테이블은 무엇을합니까? 그들은 aescore에서와 같은 lookup 테이블을 가리키고 있습니까?

+0

Google보다 대체품 상자가 더 좋기를 바랍니다. 여기서 언급 한 모드는 AES 암호가 제공하는 * 블록 암호화 *에 의존합니다. AES 암호 *는 내부적으로 sboxes를 사용하므로 프로젝트로 어디로 가고 있는지 잘 모르겠습니다. –

답변

0

gcm128.c을 보았습니까?

HTables은 갈로 아 필드 곱셈을 수행하기 위해 Galois/Counter mode (GCM)에만 해당합니다 (아래 그림에서 mult_H).

동작 CCM 및 EAX 모드와 대조적

는 GCM 모드는 그래서 학습을하거나 0

enter image description here

블록의 암호화를 사용하여 최종 GHASH 값을 생성하기 위해 AES 블록 암호를 사용 (CCM은 CBC-MAC을 사용하고, EAX는 CMAC를 사용합니다.) 인증을 사용하여 다른 암호 중 하나를 선택할 수 있습니다.