2011-03-01 4 views
0

여러 가지 예 사이퍼 인스턴스를 구할 때 "AES/CBC/PKCS7Padding"을 사용하는 것으로 나타났습니다. 분명히 AES는 암호화 알고리즘입니다. CBC는 무엇입니까? PKCS7Padding과 같은 다양한 패딩 접근 방식의 장단점은 무엇입니까?Java Cryptography Extension의 다양한 AES 변형에 대한 장단점은 무엇입니까?

개인 UDP 패킷을 종단 간 암호화하는 데 사용하고 싶습니다. 현명한 이유가 무엇입니까?

+0

"CBC"? 당신은 bouncycastle.org를보고있었습니다, 그렇죠? btw UDP를 사용하는 경우 어떻게 대칭 키를 교환 하시겠습니까? – bestsss

+0

http://www.ietf.org/rfc/rfc2898.txt – Yaneeve

+0

bestsss, RSA를 사용하여 대칭 키를 교환하려고합니다. – sanity

답변

1

http://en.wikipedia.org/wiki/Cipher_block_chaining는 지금까지 작업의 CBC 모드에 관한 한, 가능한 경우 ECB의 장소에 사용하는 것이 좋습니다 참조하십시오. 특히 일반 텍스트 암호화 또는 반복되는 데이터. (네트워크 프로토콜은 분명이 범주에 속합니다.)

ECB (전자 코드 블록)은 각 블록을 독립적으로 처리합니다. 따라서 동일한 블록은 스트림에서 각 발생에 대해 동일하게 암호화됩니다. CCB (Cipher Block Chaining)을 사용하면 이전 블록 암호화의 상태가 전파 된 다음 동일한 블록이 동일한 블록의 결과와 다른 결과를 만드는 다른 salt으로 코딩됩니다.

패딩 것. 목적은 해독 과정에서 패딩을 모호하지 않게 제거 할 수 있도록하는 것입니다. 나는 왜 "왜"다른 사람보다 낫지 만, Niels Ferguson과 Bruce Schneier의 책에서 PKCS 패딩이나 0x80 0x00 ... 패딩을 추천하기 때문에 약간의 설명을 찾을 수 있습니다.

AES를 여러 언어 및/또는 암호화 라이브러리로 사용할 때주의하십시오. 실제로 구현은 단일 알고리즘에 대해 많이 다른 것처럼 보입니다. 경우에 따라 기본 매개 변수 일뿐 아니라 다른 매개 변수가없는 경우도 있습니다.

+0

고마워요. 이것을 사용하여 개별 UDP 패킷을 암호화하는 것에 대한 의견 (각각 약 1.5k)? – sanity

+0

UDP 페이로드를 암호화하는 것을 의미합니까? –

관련 문제