카테고리
자주찾기
이글루 파인더
태그
Sis760
wifi
mysql5
큐브
모질라커뮤니티연말모임
linux
Ubuntu7.10
utf8
드라이버
flv
safari
JFace
여러분이거다거짓말인거아시죠
뿌뿌뿡
apache
xampp
인코딩
eclipse
JDBC
character-set
web
phpmyadmin
최근 등록된 덧글
최근 등록된 트랙백
Free nokia ringtones.
by Ringtones.
Instant payday loan.
by Payday loan.
Instant payday loan.
by Payday loan.
by Ringtones.
Instant payday loan.
by Payday loan.
Instant payday loan.
by Payday loan.
네트워크 보안 기말 과제로 여러가지 암호화 알고리즘을 써보고 있는데
나는 Symmetric encryption으로 RC4를 쓰기로 했다.
RC4는 Stream encryption 방법으로 사용하고 랜덤넘버를 만들고.. 뭐시기뭐시기..
알고는 있는데 사용하려면 어떻게 해야하냐고...
쓰기가 좀처럼 쉽지 않았다. 라이브러리는 몹시 간단한데.. -_
뭐가 문제일까 한참 고민했다.
간단한 테스트코드는 이랬다.
RC4_KEY testKey ;
char testData[100] = "" ;
char encData[100] = "" ;
char decData[100] = "" ;
strcpy (testData, "This is Test Data.") ;
printf ("before enc : (%s, %s)\n", encData, decData) ;
RC4_set_key (&testKey, strlen("This is key"), "This is key") ;
RC4 (&testKey, strlen(testData), testData, encData) ;
printf (" after enc : %s -> %s\n", testData, encData) ;
RC4 (&testKey, strlen(testData), encData, decData) ;
printf (" after dec : %s -> %s\n", encData, decData) ;
이리도 간단한 라이브러리를 요로코롬 사용하는데 decrypt가 안되는거다.
man page를 아무리 봐도 그냥 decrypt하면 된다고 하는데...
RC4는 encrypt / decrypt를 동일한 방법으로 한다고 했다.
그러다가 드디어 방법을 알아냈다.
여기 <-- 아주 좋은 곳이다. E-learning이라니.. 감사하다.. ^^
문제는 간단했다.
rc4는 stream을 encrypt하는 방법으로 암호화된 data를 동일한 키로 RC4 돌리면 decrypt된다.
문제가 되는 부분은 바로 '동일한 키'라는 것이다. RC4를 수행한 뒤 testKey는 또다른 랜덤넘버를 가지게 된다..
rc4는 랜덤넘버 배열을 하나씩 가져다 쓰니까..
즉, 두번째 RC4는 다른 키를 사용하게 되는 것이다. 절대 decrypt될 수 없다.
해결은 RC4_set_key를 다시 수행하여 key를 reset하는 것.
RC4_KEY testKey ;
char testData[100] = "" ;
char encData[100] = "empty" ;
char decData[100] = "empty" ;
strcpy (testData, "This is Test Data.") ;
printf ("before enc : %s (%s, %s)\n", data[1], encData, decData) ;
// encrypt부분
RC4_set_key (&testKey, strlen("This is key"), "This is key") ;
RC4 (&testKey, strlen(testData), testData, encData) ;
printf (" after enc : %s(%d) -> %s(%d)\n", testData, strlen(testData), encData, strlen(encData)) ;
// decrypt부분
RC4_set_key (&testKey, strlen("This is key"), "This is key") ;
RC4 (&testKey, strlen(testData), encData, decData) ;
printf (" after dec : %s -> %s\n", encData, decData) ;
물론 이렇게 encrypt / decrypt를 한번에 하는 짓은 절대 아무도 하지 않을 것이지만..
^^;; 그냥 만들것을. 괜히 test code만든다고 하다가 괜한 삽질이나 하고..
아무래도 수련이 부족하다.. -_
나는 Symmetric encryption으로 RC4를 쓰기로 했다.
RC4는 Stream encryption 방법으로 사용하고 랜덤넘버를 만들고.. 뭐시기뭐시기..
알고는 있는데 사용하려면 어떻게 해야하냐고...
쓰기가 좀처럼 쉽지 않았다. 라이브러리는 몹시 간단한데.. -_
뭐가 문제일까 한참 고민했다.
간단한 테스트코드는 이랬다.
RC4_KEY testKey ;
char testData[100] = "" ;
char encData[100] = "" ;
char decData[100] = "" ;
strcpy (testData, "This is Test Data.") ;
printf ("before enc : (%s, %s)\n", encData, decData) ;
RC4_set_key (&testKey, strlen("This is key"), "This is key") ;
RC4 (&testKey, strlen(testData), testData, encData) ;
printf (" after enc : %s -> %s\n", testData, encData) ;
RC4 (&testKey, strlen(testData), encData, decData) ;
printf (" after dec : %s -> %s\n", encData, decData) ;
이리도 간단한 라이브러리를 요로코롬 사용하는데 decrypt가 안되는거다.
man page를 아무리 봐도 그냥 decrypt하면 된다고 하는데...
RC4는 encrypt / decrypt를 동일한 방법으로 한다고 했다.
그러다가 드디어 방법을 알아냈다.
여기 <-- 아주 좋은 곳이다. E-learning이라니.. 감사하다.. ^^
문제는 간단했다.
rc4는 stream을 encrypt하는 방법으로 암호화된 data를 동일한 키로 RC4 돌리면 decrypt된다.
문제가 되는 부분은 바로 '동일한 키'라는 것이다. RC4를 수행한 뒤 testKey는 또다른 랜덤넘버를 가지게 된다..
rc4는 랜덤넘버 배열을 하나씩 가져다 쓰니까..
즉, 두번째 RC4는 다른 키를 사용하게 되는 것이다. 절대 decrypt될 수 없다.
해결은 RC4_set_key를 다시 수행하여 key를 reset하는 것.
RC4_KEY testKey ;
char testData[100] = "" ;
char encData[100] = "empty" ;
char decData[100] = "empty" ;
strcpy (testData, "This is Test Data.") ;
printf ("before enc : %s (%s, %s)\n", data[1], encData, decData) ;
// encrypt부분
RC4_set_key (&testKey, strlen("This is key"), "This is key") ;
RC4 (&testKey, strlen(testData), testData, encData) ;
printf (" after enc : %s(%d) -> %s(%d)\n", testData, strlen(testData), encData, strlen(encData)) ;
// decrypt부분
RC4_set_key (&testKey, strlen("This is key"), "This is key") ;
RC4 (&testKey, strlen(testData), encData, decData) ;
printf (" after dec : %s -> %s\n", encData, decData) ;
물론 이렇게 encrypt / decrypt를 한번에 하는 짓은 절대 아무도 하지 않을 것이지만..
^^;; 그냥 만들것을. 괜히 test code만든다고 하다가 괜한 삽질이나 하고..
아무래도 수련이 부족하다.. -_



