728x90
반응형
질문 : AES 암호화 모드 (CBC ECB CTR OCB CFB)를 선택하는 방법은 무엇입니까?
어떤 상황에서 어떤 것이 선호됩니까?
다양한 모드에 대한 평가 기준 목록과 각 기준의 적용 가능성에 대한 논의를보고 싶습니다.
예를 들어 기준 중 하나는 암호화 및 암호 해독을위한 "코드 크기"라고 생각합니다. 이는 802.11 네트워크 어댑터와 같은 마이크로 코드 임베디드 시스템에 중요합니다. CBC를 구현하는 데 필요한 코드가 CTR에 필요한 코드보다 훨씬 작다면 (이건 사실인지 모르겠습니다. 단지 예일뿐입니다) 더 작은 코드의 모드가 선호되는 이유를 이해할 수 있습니다. 그러나 서버에서 실행되는 앱을 작성하고 사용중인 AES 라이브러리가 어쨌든 CBC와 CTR을 모두 구현하는 경우이 기준은 관련이 없습니다.
"평가 기준 및 각 기준의 적용 가능성 목록"이 의미하는 바를 참조하십시오.
이것은 실제로 프로그래밍과 관련이 없지만 알고리즘과 관련이 있습니다.
답변
- 동일한 키로 둘 이상의 데이터 블록을 암호화하는 경우 ECB를 사용해서는 안됩니다.
- CBC, OFB 및 CFB는 비슷하지만 OFB / CFB는 암호화 만 필요하고 암호 해독은 필요하지 않으므로 코드 공간을 절약 할 수 있기 때문에 더 좋습니다.
- CBC / OFB / CFB 대신 좋은 병렬화 (즉, 속도)를 원할 경우 CTR이 사용됩니다.
- XTS 모드는 임의 액세스 가능한 데이터 (예 : 하드 디스크 또는 RAM)를 인코딩하는 경우 가장 일반적입니다.
- OCB는 단일 패스로 암호화 및 인증을 허용하므로 단연 최고의 모드입니다. 그러나 미국에는 특허가 있습니다.
당신이 정말로 알아야 할 유일한 것은 당신이 단지 하나의 블록을 암호화하지 않는 한 ECB는 사용되지 않는다는 것입니다. XTS는 스트림이 아닌 임의로 액세스 된 데이터를 암호화하는 경우에 사용해야합니다.
- 암호화 할 때마다 항상 고유 한 IV 를 사용해야하며 무작위 이어야합니다. 임의적 임을 보장 할 수없는 경우 OCB를 사용하십시오. IV가 아닌 nonce 만 필요하며 뚜렷한 차이가 있기 때문입니다. 임시 값 은 사람들이 다음 항목을 추측 할 수 있다면 보안을 떨어 뜨리지 않습니다. IV 는이 문제를 일으킬 수 있습니다.
출처 : https://stackoverflow.com/questions/1220751/how-to-choose-an-aes-encryption-mode-cbc-ecb-ctr-ocb-cfb
728x90
반응형
'개발관련 > other' 카테고리의 다른 글
JSON는 객체에서 배열 마지막 항목에 후행 쉼표를 허락하는가? (0) | 2021.09.09 |
---|---|
Mac에서 Android Studio를 완전히 제거하는 방법 (0) | 2021.09.08 |
JSON 명명 규칙 (snake_case, camelCase 또는 PascalCase) (0) | 2021.09.03 |
Excel에서 UTF-8 CSV 파일을 여는 방법 (0) | 2021.09.02 |
Flask에서 정적 파일을 제공하는 방법 (0) | 2021.09.02 |