2013-06-11 3 views
0

그래서 보안 파이썬 프로그래밍에 약간의 실험이 있습니다. D). 이것은 현실 세계 프로젝트의 절반이며, 훈련 훈련의 절반 정도입니다. 그래서 이론과 실용적인 조언 모두가 높이 평가됩니다. 나는 방식으로 텍스트를 암호화하는 AES 소금에 절인 암호화 스크립트를 사용하고암호화 된 텍스트와 암호화되지 않은 텍스트에서 AES "salt"가져 오기

...

data = "hello" 
encrypted_text = encryption(data, salt_word) 
print encrypted_text (responds with "huio37*\xhuws%hwj2\xkuyq\x#5tYtd\xhdtye") 
plain_text = decryption(encrypted_text, salt_word) 
print plain_text (responds with "hello") 

질문 : 당신은 "encrypted_text"와 "plain_text"의 값을 알고 있다면 ... 당신은 리버스 엔지니어링 할 수 있습니다 "salt_word". 만약 그렇다면, 얼마나 힘들지? (PC에서 12 초, 또는 Cray에서 20 년)

AES의 전체적인 관점에서의 이해는 불가능합니다. 그러나 나는 그다지 친숙하지 않다. 내가 여기 스크립트의 근소하게 수정 된 버전을 사용하고


: Encrypt/decrypt data in python with salt

는 기본적으로, "데이터"를 암호화하기 위해 "소금"을 사용합니다. salt는 문자열이고 데이터는 암호화 된 문자의 문자열로 나옵니다.

같은 salt 문자열을 사용하는 decrypt를 사용하여 데이터를 일반 텍스트로 반환합니다.

+0

"소금"이란 무엇을 의미합니까? AES 키를 생성하기 위해 비밀번호를 암호화하고 있습니까? –

+0

당신이 사용하고있는'encrypt' 메쏘드를 알지 못한다면 말하기가 약간 어렵습니다. 열쇠 또는 ​​암호가 주입되는 부분을 놓친 것 같습니다. 소금은 일반적으로 암호 기반 키 유도 함수 (PBKDF) 또는 덜 안전한 구현을 위해 소금에 절인 해시 값에 대해서만 사용됩니다. –

답변

1

AES와 소금을 말하면 무엇을 구체적으로 말하고 있습니까? 이것이 IV에서 CBC 또는 CTR 모드입니까? 암호문 (PBKDF2)으로 키 생성에 사용되는 소금입니까?

두 경우 모두 소금은 일반적으로 비밀이 유지되지 않습니다. IV는 명확하고 해시 스키마와 함께 전송 될 수 있으며 해시와 함께 저장됩니다 (그렇지 않으면 해시를 다시 계산할 수 없습니다).

나는 분명히 IV를 명확하게 전송하는 것이 안전하다는 이전의 대답을 제시했는데, 이는 here입니다.

관련 문제