2012-02-16 2 views
-2

누군가가이 알고리즘을 안전하게 설명 할 수 있습니까? 그걸 어기는 공격이 있니? 이러한 알고리즘은 일반적인 XOR 암호화를 사용하지만 약간의 차이 갖는다 : (2)
M (3) = H이 XOR 암호화가 안전합니까?

M (1) = 키 XOR 메시지 (1)
M (2) = h를 (키) XOR 메시지 (H) (키) XOR 메시지 (3)
하고 그렇게

주에 :

  1. M (i)는 텍스트를 암호화한다
  2. (i)는 우리가 암호화하는 데가는 메시지는
  3. 메시지입니다 그것
  4. 키와 메시지 (I)가 같은 길이 **
  5. 공격자 단지 암호화 된 텍스트를 가지고 있으며,
  6. 해시 알고리즘은 SHA-512
+0

http://security.stackexchange.com/ – Mchl

+2

에 질문을 시도해보십시오. security.SE 또는 crypto.SE에 교차 게시하지 마십시오. 마이그레이션을 위해 플래그를 지정했지만 대신 닫히면 놀라지 않을 것입니다. – CodesInChaos

+2

당신은 왜 당신 자신의 암호를 발명합니까? 기존의 스트림 암호가 많이 있습니다. 자신의 나쁜 것을 고안 할 이유가 없습니다. – CodesInChaos

답변

2

암호화 알고리즘을 공부하는 것은 재미 있습니다. 당신이 놀고있는 것을 기억하고 진지한 것을 만들어내는 것이 아닙니다. 개인 일기 (또는 심지어 암호)와 같은 것을 암호화하고 데이터를 안전하게 유지하는 한, 당신은 아마 괜찮을 것입니다. 이러한 종류의 보안은 모호함을 통해 중요합니다. REALLY은 사적으로 유지해야하거나 외부 세계에 관심이있는 데이터를 대량으로 암호화 할 것을 권장하지 않습니다. 귀하의 메시지가 키 크기 및 해시 블록 크기보다 짧고 키가 하나의 사용 및 임의 경우이 경우


는, 당신은 효과적으로 하나의 사용 패드 팽창에 그렇게 모든 것을 사용하고 있습니다. 임의의 숫자 키 생성이 완벽 할 경우, 깨지지 않는 암호화 메커니즘이 있습니다. 각 블록을 메시지에 추가 할 때 특정 값을 추가하지 않고 SHA-512를 사용하여 새 키를 효과적으로 계산할 수 있습니다.공격자가 메시지가 인쇄 가능한 텍스트로 구성되어 있다고 가정 할 수 있고 메시지의 길이가 길거나 키가 반복적으로 사용되는 경우 원래 키를 찾기가 너무 어려워서는 안됩니다.

계산하는 것이 더 효과적 일 것

:

M(1)=h(N + key) XOR Message(1) 
M(2)=h(M(1)) XOR Message(2) 
M(3)=h(M(2)) XOR Message(3) 

그렇게 나쁜 사람 (. N은 일반 텍스트로 전달되는 키가 사용 된 횟수 임) 수 미리 키 시퀀스를 계산하지 말고 메시지를 해독하십시오. 또한 소금에 절인 해시 키를 사용하여 공격자는 다음에 사용할 키 시퀀스를 예측할 수 없습니다.


어디 선가 읽어

이 암호의 첫 번째 규칙은
  • 는 "암호화는 전문가에게 남아 있어야합니다."
  • 두 번째 규칙은
"당신은 전문가가 아니다."

사람들이 컴퓨터 과학 및 수학과 같은 분야에서 박사 학위를받는 이유가 있습니다. 배우고 발견해야 할 것이 많습니다. 이런 식으로 나에게 잘 보이지만 공격자가 트럭을 운전할 수있는 구멍이있다는 것은 의심의 여지가 없습니다.

즐겁게 보내고 나 같은 우울한 사람들이 당신을 실망시키지 않도록하십시오. /Bob Bryan

3

하는 경우입니다 주요 결정 방식 (계속 해싱)와 XOR 암호화 알고 공격자는 평문 - 암호문 쌍을 알게되고, 해당 키를 계산할 수 있습니다. 그리고 그로부터 모든 최신 키를 계산할 수 있습니다. 즉 평범한 텍스트 공격에 쉽게 취약합니다.

공격자가 메시지를 추측한다고 말하면서 나는 그가 자신의 추측이 맞다고 확신하지는 않습니다. 그는 몇 조개의 추측을 할 수 있으며, 그 중 하나가 정확하다면 당신의 전체 계획이 망가져 있습니다.

물론 키를 재사용해서는 안됩니다.


보다 안전한 (하지만 배 느린) 알고리즘은 다음과 같습니다

Key(i+1) = h("A"+key) 
M(i) = h("B"+key) XOR Message(i) 

또는 CTR 모드와 유사 건설 :

M(i) = h(i+key) XOR Message(i) 

하지만 난 여전히 하나를 사용하지 않을 .


그러나 이러한 자작 (homebrew) 알고리즘을 사용할 이유는 없습니다. 잘 작동하는 기존의 알고리즘이 많이 있습니다. 예를 들어 스트림 암호 설계가 마음에 들면 CTR 모드에서 AES를 사용할 수 있습니다.

+0

나는이 공격자가 평문을 얻을 수 없다는 것을 확신한다. – oMiD

+1

@oMiD 그래서 모든 단일 메시지가 높은 엔트로피를 가지고 있다고 확신합니까? 그건 내가하고 싶은 내기가 아니야. 특히 알려진 일반 텍스트 공격에 취약한 구성표를 사용할 이유가 없기 때문에 특히 그렇습니다. – CodesInChaos

관련 문제