네트워크를 통해 패킷을 수신하고 있습니다. 그러나 일부 패킷에는 동적 길이가 있으므로 두 번째 바이트에는 길이가 포함 된 2 바이트 길이의 WORD가 있습니다. 그래서 패킷 번호를 먼저 받았다가 길이에 따라 모두받습니다. 암호화가 없으면 모든 것이 여기에 있습니다. 투 어류 또는 복어 암호화를 사용하면 동일할까요? 내 말은 'A'는 'B'로 암호화되지만 'AA'는 'BB'로 암호화된다는 것입니다. TF/BF로 암호화 된 패킷에서 바이트를 추출하고 해독 할 수 있습니까?복어와 이복은 바이트 단위로 암호화됩니까?
답변
'A'는 'B'로 암호화되지만 'AA'는 'BB'로 암호화됩니다.
현명한 암호화 알고리즘으로는이 작업을 수행하지 않습니다. 그렇지 않으면 암호화 된 정보가 주파수 분석을 통해 쉽게 손상 될 수 있습니다. (이것은 덧붙여 substitution cipher으로 알려짐). 이것은 물론 blowfish 및 twofish에 해당합니다.
중간에 바이트를 추출하려는 경우에도 전체 패킷을 먼저 해독해야합니다.
* : 현재) 64 비트/128 비트 블록에 걸쳐 치환 암호로 두 암호화 알고리즘을 감소 약한 ECB mode을 사용하지 않는 경우.
Downvoter, 관심이 있으십니까? – kennytm
일반적으로 해답은 암호화 된 데이터를 채우는 것입니다. 그러나 블록 길이에 도달 할 때까지 0을 더하여 패드를 칠하지 마십시오. 패딩은 너무 많은 정보를 줄 수 있습니다.
바이트를 추출하는 한, 사용 된 암호 모드 (블록간에 암호가 변경되는 방식)에 따라이 작업을 수행 할 수 없습니다. 읽으려는 바이트 바이트까지 모두 해독해야합니다. 암호화를 "투명하게"하는 일반적인 방법입니다. 예를 들어 네트워크 프로그래밍을 한 다음 SSL을 사용하여 SSL을 처리하여 다양한 암호화, 다양한 길이 처리 등의 처리를 수행하면 일반 오래된 데이터를 처리 할 수 있습니다 .
SSL을 던지는 것이 좋은 생각인지 여부는 모르겠지만 개념을 사용할 수 있습니다.
Twofish는 기본 수준에서 16 바이트 블록을 인코딩합니다. 따라서 Twofish로 암호화 된 데이터의 최소 크기는 16 바이트입니다. 데이터에 길이가 포함되어 있으면 해독 한 다음 마지막 블록의 여분의 바이트를 버릴 수 있습니다.
그래서 'A'를 암호화하려면 (여러 가지 방법이 있습니다 - 모든 제로가 분명히 최선의 방법은 아닙니다) 16 바이트로 매핑 한 다음 1 바이트의 데이터와 원치 않는 15 바이트의 바이트를 암호화해야합니다. 16 바이트의 암호화 된 블록을 얻습니다. 암호 해독시 여분의 바이트를 버릴 수 있습니다. 둘 다 나에게 도움이되었습니다
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
http://en.wikipedia.org/wiki/Padding_%28cryptography%29
:
나는이 위키 피 디아 기사 읽기 반 시간을 제안한다.
- 1. 바이트 단위로 킬로 바이트 검색
- 2. 포인터는 항상 바이트 단위로 정렬됩니다.
- 3. Java를 사용하여 바이트 단위로 파일을 읽을 때 예상하지 못한 바이트
- 4. double을 바이트 단위로 바꿔 쓰는 방법은 무엇입니까?
- 5. 비트 맵을 바이트 단위로 저장하는 방법 [] C#?
- 6. 이미지를 Arduino에서 바이트 단위로 가져 와서 Java
- 7. RSA 서명의 크기는 바이트 단위로 무엇입니까?
- 8. 바이트 단위로 이동하지 않고 MIDI 파일 읽기
- 9. 실제 메모리 사용량을 메가 바이트 단위로 가져옵니다.
- 10. cudaMemcpy3D의 너비가 바이트 단위로 잘못 되었습니까?
- 11. 바이트 단위로 유니 코드 문자 읽기
- 12. 바이트 단위로 GtkTextBuffer의 정확한 크기를 얻는 방법?
- 13. 파일에서 바이트 단위로 파일을 업로드하는 방법
- 14. imagepickerdidFinishPickingMediaWithInfo에있는 비디오의 크기를 바이트 단위로 계산합니다.
- 15. 데이터의 페타 바이트 단위로 즉각적인 검색
- 16. ASP.NET 인증 티켓은 어떻게 암호화됩니까?
- 17. 이 RSS 링크는 어떻게 암호화됩니까?
- 18. VB6 : 바이너리 파일은 어떻게 암호화됩니까? 넣어 문
- 19. 서버가 Heroku에있을 때 JSON 전송이 자동으로 암호화됩니까?
- 20. 로드 된 후 OpenGL 텍스처 크기를 바이트 단위로 찾기
- 21. 잘못된 이미지를 확인하기 위해 이미지 크기를 바이트 단위로 가져옵니다.
- 22. Java 7 API를 사용하여 바이트 단위로 파일 읽기
- 23. Actionscript 3 - ByteArray의 크기를 바이트 단위로 가져 오기
- 24. 이미지가 UIImagePickerController에서로드 될 때 메모리가 바이트 단위로 증가합니다.
- 25. JDBC : 커밋 된 데이터 크기를 바이트 단위로 가져올 거리가 있습니까?
- 26. 바이트 단위로 데이터가있는 mysql coloumn을 정렬하는 방법 KB MB GB?
- 27. C#에서 세션 개체의 크기를 바이트 단위로 가져올 수 있습니까?
- 28. PHP5로 바이트 단위로 파일을 읽고 쓰는 방법은 무엇입니까?
- 29. ASP.NET 캐시의 크기를 바이트 단위로 결정하는 방법은 무엇입니까?
- 30. Java에서 직렬화 된 객체의 크기를 바이트 단위로 읽으려면 어떻게해야합니까?
"블록 암호"라고하는 이유는 무엇입니까? – PlasmaHH