통신 패킷 암호화....
글쓴이: ohdol / 작성시간: 목, 2006/02/02 - 10:54오전
통신 패킷을 암호화/복호화 해서 사용하려고 합니다.
그런데 지금 설계된 프로토콜에서 종료를 CR-LF로 사용하고 있습니다.
SEED 를 이용해서 일정 부분을 암호화 했더니 encrypt 된 패킷 중간중간에 CR(0x10), LF(0x13)이 들어 있어서 전체 프로토콜을 수정하지 않는 한 사용하지 못할 것 같습니다.
제가 잘못 알고 있는 건지??
프로토콜을 재정의하지 않고 암/복호화 할 수 있는 신뢰할 수 있는 방법이 있는지 알려주세요.
Forums:
그렇다면 decrypt할때도 중간중간에 CR LF를 넣어서 하면 되겠군요
그렇다면 decrypt할때도 중간중간에 CR LF를 넣어서 하면 되겠군요.
제가 글로 잘 표현을 못했나보네요.복호화 이전에 통신하는데 문제가 있
제가 글로 잘 표현을 못했나보네요.
복호화 이전에 통신하는데 문제가 있습니다
지금 문제가 되고 있는 부분은
- 현재 사용하고 있는 통신 프로토콜의 종료값으로 CR-LF 를 사용.
- SEED를 이용하여 encrypt를 했을 경우 encrypt된 패킷 중간에 CR 또는 LF 가 들어 갈수 있어서 이것을 전송시 패킷이 끊어지게 됨.
- 때문에 SEED를 사용할 경우 전체 통신 프로토콜을 재정의 필요.
- 위와 같은 문제를 일으키지 않고 encrypt 할 수 있는 암/복호화 방법 추천해주세요~
^^ always smile
encrypt 후 base64 로 인코딩해서 보내고 받는쪽에서 다시 de
encrypt 후 base64 로 인코딩해서 보내고 받는쪽에서 다시 decoding 하고 난후 decrypt 하면 되겠네요.
만약 base64 인코딩을 사용한다면 데이터량이 1/3 증가합니다.
만약 base64 인코딩을 사용한다면 데이터량이 1/3 증가합니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
그냥 TLS...
OpenSSL을 써보심이...
단순무식하게 암호화후 보내기전 다시 처리하여 CR-LF 를 \CR-LF
단순무식하게 암호화후 보내기전 다시 처리하여 CR-LF 를 \CR-LF 로 바꾸고 만약 \CR-LF가 있으면 \\CR-LF로 바꾸는 식으로 처리하고 복호화전에 위처리를 반대로 해도 되겠죠
길이가 약간 변화할수 있겠네요
보내는 데이터에 암호화된 데이터의 길이를 같이 넣어주시면...
보내는 데이터에 암호화된 데이터의 길이를 같이 넣어주시면...
일단 base64 로 작성해서 잘 되네요.지적해주신대로 패킷양이 좀
일단 base64 로 작성해서 잘 되네요.
지적해주신대로 패킷양이 좀 늘겠지만
중요한 패킷만 암호화해서 사용할 예정이어서 그럭저럭 괘안을듯 싶어요.
여유가 생기면 다른걸로도 알아봐야겠네요.
다들 감사합니다~
^^ always smile
문제가 그러했군요.하나 더 추가하면,......bit stuffi
문제가 그러했군요.
하나 더 추가하면,......
bit stuffing을 참고해 보도록 하세요.
base64가 암호화로서 가치가 있나요?
base64가 암호화로서 가치가 있나요?
[quote="Anonymous"]base64가 암호화로서 가치가 있나요
위에서 제시한 방법은 암호화 대신 base64를 쓰는게 아니라 암호화후 base64를 한다는 겁니다. 암호화를 하면 바이너리 데이타가 되는지라
원질문자께서 사용하는 프로토콜에서 CR LF를 사용하기 때문에 암호화결과값이 이에 영향을 미칠수 있기 때문입니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
아...문제가 또 생겼네요이넘의 SEED 가 big endian, l
아...문제가 또 생겼네요
이넘의 SEED 가 big endian, little endian 컴파일 옵션이 다르네요
아래 부분에서만 사용되는거 같은데....endian 에 무관하게 동작하게 고민 좀 해봐야겠네요. 서버는 문제 없는데 클라이언트가 배포시 문제가 될듯 하네요. 흑~
^^ always smile
인디언 문제는
컴파일할때 preprocess 옵션만 주면 됩니다.
SEED 알고리즘 구현에서 메모리 <--> cpu 레지스터간 교환시 인디언 처리를
해줘서 그렇습니다.
컴파일때만 잘 처리해 주면 됩니다. 컴파일후 테스트 벡터에 대한 검증을
꼭 수행하기 바랍니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
댓글 달기