암호화되었다는 개인정보.. 얼마나 안전할까?

 

 

요즘 사이트들의 해킹 사고가 많이 일거 나고 있습니다.

 

그러면서, 일부 정보는 암호화가 되어 있기 때문에,

안전하다고 합니다.

 

그런데.. 이렇게 암호화 되었다는 개인정보가 정말로 안전 할까요?

암호화 작업이라는 것은

f( x) = y 에서, x 에 암호화가 필요한 정보(주민번호등)을 넣어서, 나온  y 라는 값을 저장하는 것을 말합니다.

 

그리고, 나중에는 사용자에게서 x’ 를 입력 받았을 때, f( x’) 의 결과값 y’ 과 저장되어 있는 y 를 비교해서,

둘이 같으면, x도 같다고 생각하게 됩니다.

 

예를 들어서, f( x) = x+3 ; 이고, 주민번호가 800101-1111110 이면은,

y = 800101 – 1111113 이 됩니다.

그러면 y를 해킹당하더라도 f( x) 를 모른다면, 원래의 주민번호를 모르게 됩니다.

물론 나중에 확인 필요가 있을 때는, f( x) 를 가지고 제대로 입력 했는지 확인이 할 수 있습니다.

 

그런데… 대부분의 함수는 역함수를 가지고 있습니다.

역함수란 y 값에서 x 를 찾을수 있는 식입니다.

즉 위 함수의 역함수 f’(x ) = y-3 이 되겠지요.

 

그래서 암호화 함수들은 역함수가 존재 하지 않습니다. 그러므로f’(x ) 가 없기 때문에 , 안전하다고 이야기 하는 것이죠.

그리고 f( x) 를 알고 있더라도, x에 모든 값을 넣어서, y를 찾는 것은 시간이 너무 오래 걸리기 때문에, 안전하다..

뭐 이런거죠.

 

그러나!. 과연 안전 한까요?

 

우리의 주민번호는 총 13자리. 숫자로만 구성되어 있습니다.

그리고, 우리의 주민번호의 규칙은 대부분이 알고 있습니다.

 

앞에 6자리는 생일, 두번째 자리 첫자리는 남성/여성 입니다.

그리고 대부분의 가입 신청서에는 생년월일 , 성별을 적게 되어 있습니다.

 

그러면, 벌써 13자리중 7자리를 알게 됩니다. 그리고 마지막 1자리는 checksum 입니다.

[checksum 이란 이 숫자가 모두 정확한지 확인하기 위한 값]

 

그러면 6자리가 남았습니다.

숫자 6자리 . 000000 ~ 999999 의 숫자를 대입해서,

f(x ) 에 대입을 해서 y 하고 비교를 하면, 주민번호를 찾을수 있죠..

 

 

간단하게 , md5sum 암호화를 이용해서 만들어 보았습니다.

이경우 단 6초 만에( 제 컴퓨터는 AMD Phentom 2.7G) 주민등록 번호를 찾네요.

최악의 경우(999999)에도 30초가 걸렸습니다.

 

결국 단순 숫자로만 구성된, 그리고 주민등록 번호 규칙을 다 알고 있기 때문에,

 

1000만명을 해킹한경우. 그리고 하나의 주민등록 번호를 알아 내는데 15초가 걸린다고 하면,

총 150,000,000 초가 걸립니다.

날짜로 나누면, 150,000,000s  / 86400s = 1736 일.

 

요즘 많이 쓰는 쿼드 CPU 라면.  434일. 그리고 컴퓨터가 10대라면, 43일..

1천만명의 주민등록 번호를 모두 알게 됩니다.

 

예.. 이건 암호화 방식이 얼마나 복잡한가에 따라서, 결과가 다릅니다.

그렇다면, 무조건 엄청 복잡한 암호화 방식을 선택해서, 암호화값을 계산하는 시간이 오래 걸리게 하면 될까요?

이것도 어렵습니다. 왜냐하면, 매번 계산해야 하는 암호화인데, 이렇게 오래 걸리게 하면,

결국은 시스템의 성능의 업그레이드가 필요 합니다.

 

그러므로, 주민번호와 같이 단순하고, 자주 확인이 필요하지 않는 정보는,

어려운 암호화 방식이 필요 하지 않을까요..

 

그나저나, 이미 유출된 정보는 어떻게 해야 하나요.ㅠㅠ

2 thoughts on “암호화되었다는 개인정보.. 얼마나 안전할까?

  1. 캐리미

    포스팅 잘읽고갑니다 유출된정보 정말 걱정되네요 ㅜㅜ
    저도 이렇게 좋은 포스팅 하고싶어요 ㅜㅜ초대장 제발 하나만 주시면 안될까요
    부탁드립니다 hls2@hanmail.net

    Reply

Leave a Reply