2017-12-19 30 views
0

바이트 배열 A를 암호화하여 암호화 된 바이트 배열 E를 생성한다고 가정합니다. 다음으로 E를 두 개의 작은 배열 E1 및 E2로 분할합니다.암호화 된 데이터 조각을 해독 할 수 있습니까?

난 단지는 E1과 E2 중 하나는, 그들이 해독 할 수있는 경우

, 또는 데이터가 성공적으로 해독 할 수 있도록 모두 E1 E2를 위해 올바른 순서로, 존재해야합니까? E1 또는 E2에서 유용한 정보 (즉, A의 일부 하위 집합)를 독립적으로 추출 할 수 있습니까?

나는 이것이 암호화 알고리즘에 달려 있다는 것을 알고 있습니다. RSA와 같은 공통 키 쌍 알고리즘에 대해 주로 궁금합니다.

+0

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_Codebook_(ECB) –

+0

투표로 끝나는 것은 프로그래밍 질문이 아닙니다. 또한 실제 세부 사항이 부족합니다. –

답변

3

어떤 모드가 가능한지는 알고리즘에 따라 다르지만 대부분 암호화에 사용되는 모드에 따라 다릅니다.

스트리밍 모드 (CTR 또는 CFB 또는 OFB)를 사용하면 대답은 일반적으로 '예'입니다. 수신 한 스트림의 모든 부분을 해독 할 수 있지만 피드백 모드에서는 일부가 손실 될 수 있습니다.

블록 모드 (ECB 또는 CBC)를 사용하면 대답은 '약간'입니다. 사용자가 얻은 전체 블록을 디코딩 할 수 있지만 일부 블록은 복구 할 수 없습니다.

표준 단어가 아닌 크로스 블록 모드를 사용하면 대답은 '아니오'입니다. 이러한 모드는 해당 속성에 맞게 특별히 설계 되었기 때문입니다.

RSA는 큰 블록 크기를 가지며 일반적으로 블록 모드 (대칭 세션 키가 들어있는)를 암호화하기 위해 블록 모드에서 사용되므로 한 블록의 일부분 만 있으면 일반적으로 아무 것도 얻을 수 없습니다.

+0

'E1'과'E2' 배열 중 하나가 매우 작 으면 더 큰 배열을 유지하는 특별한 경우가 있습니다. 그럴 경우 잃어버린 부분을 무차별 적으로 공격 할 수 있습니다. – lockcmpxchg8b