문제

내가 이것을 가지고 있다고 상상해보십시오 :

$cdata = AES_256($data, $pass);

AES_256을 구현합니다 AES 알고리즘.

내가 내용을 알고 있다면 $cdata 그리고의 내용 $data 그리고 또한 AES_256() 코드, 리버스 엔지니어링 및 찾을 수 있습니까? $pass?

도움이 되었습니까?

해결책

간단한 답변 : 아니요.

이것은 테스트되었으며 Wiki Link에서 언급되었습니다.

관련 키 공격은 256 비트 AE의 최대 9 라운드를 분해 할 수 있습니다. 선택된 플레인 텍스트 공격은 192-256 비트 AES의 8 라운드와 128 비트 AE의 7 라운드를 깰 수 있지만 작업량은 2에서 실용적이지 않습니다.128 - 2119.

또는 다른 방법으로 말하십시오 : 당신은 조명에 맞을 가능성이 더 높습니다 ... 같은 날, 당신은 복권을 끊는 것보다!

다른 팁

이것을 a라고합니다 알려진 플레인 텍스트 공격. AES와 같은 좋은 암호는 다른 사람들이 설명했듯이 그것에 면역되어야합니다.

만약에 $pass 실제로 256 비트 키가 아닌 비밀번호이므로 운이 좋을 수 있습니다.

실적이 사소한 것은 아니지만 일반 암호에 대한 무차별 적 공격은 256 비트 키를 중단하는 것보다 훨씬 빠릅니다.

따라서 많은 비밀번호 브레이트 포팅 도구 중 하나를 수정하면 (비밀번호의 강도에 따라) 몇 주에서 몇 년이 걸릴 수있는 공격이 있지만 3x10^51 년에 비해 빠릅니다 ...

당신은 그것을 무차별 할 수 있지만, 시간이 오래 걸릴 것입니다. 수십 년 이상. 이것이 AES와 같은 암호화 알고리즘의 요점입니다.

또 다른 인용문 위키 백과:

AES는 256 비트 키를 사용할 수 있습니다. Brute Force에 의해 대칭 256 비트 키를 끊으려면 128 비트 키보다 2^128 배 더 많은 계산 전력이 필요합니다. 초당 10 억 (10^18) AES 키를 확인할 수있는 장치는 256 비트 키 공간을 배출하기 위해 약 3 x 10^51 년이 필요합니다.

원본 텍스트가 더 빠르지 만 여전히 3 x 10^51 년이 길다는 것을 알고있을 때 무차별적인 강제력은 오랜 시간입니다. 또한 10 억 (10^18) 키/초를 확인할 수있는 장치가 없을 것입니다.

요컨대: 모든 것이 가능하지만, 이것은 우리가 지금 살고있는 세상에서 실현할 수 없습니다.

AES는 모든 좋은 암호화 알고리즘과 마찬가지로 의존하지 않습니다. 모호함을 통한 보안.

다시 말해, 코드에는 "비밀"이 없으므로 코드를 갖는 것이 특히 도움이되지 않습니다.

알려진 일반 텍스트는 별도의 문제이므로 잘 모르므로 다른 답변자에게 맡길 것입니다.

물론 유일한 접근법은 무차별적인 힘입니다. NIST가 새로운 표준을 위해 너무 쉽게 갈라진 암호를 선택할 정도로 NIST가 어리 석다고 생각하십니까?

슈퍼 컴퓨터의 힘으로 AES 암호화를 충돌시킬 시간이 크게 단축됩니다 .... 들었습니다 ...

2x2^256 가능한 조합은 무차별 적으로 많은 것입니다. 그러나 Bruteforcing은 유일한 방법입니다. 실제로 약 30 년이 걸릴 것입니다. AES는 지금 가능한 최고의 암호화입니다. 그러나 그것은 CPU를 사용하는 데 많은 시간이 걸릴 것입니다. GPU의 (그래픽 처리 단위)는 엄격하게 수학 기반이므로 사람들은 GPU를 사용하여 수학 기반 알고리즘을 CPU보다 훨씬 빠르게 해체하는 프로그램을 만들고 있습니다. 다시 말해, AES는 30 년 동안 지속되지 않을 수 있습니다. 영원 코드 만 가능하다면. 다이나믹 암호화가 사람들이 가까운 장래에 정보를 실제로 숨길 수있는 유일한 방법 인 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top