> Information Security
-
대칭키 암호를 이용한 해쉬함수에 대한 공격기법> Information Security/Cryptology 2012. 5. 28. 00:48
대칭키 암호를 이용한 해쉬함수에 대한 공격기법 (1) 생일공격(Birthday Attack) 생일공격은 서명문의 길이가 해쉬값 보다 훨씬 길 경우에 충돌이 발생하게 되는 문제점에 이러한 해쉬 함수의 특징 중 충돌 회피성을 만족하기 위한 조건을 충족한다. 충돌회피성의 조건을 만족하기 위해서는 동일한 해쉬 값 H를 갖는 서명문 M과 M’을 찾는 것이 어려워야 하는데 생일공격은 이러한 M과 M’을 찾는 것을 구할 수 있게 한다. 생일공격은 생일모순에 근거하여 해쉬 함수를 공격하는 방법이다. n명의 사람들 중, 동일한 생일을 가지는 2명이 존재할 확률을 P(n), 동일한 생일이 없는 경우를 Q(n)이라고 했을 때, 의 연산을 반복적으로 수행하는 것을 의미한다. 여기에서 생일 모순은 임의로 모인 23명 중 생일이..
-
대칭암호방식의 사용현황> Information Security/Cryptology 2012. 5. 28. 00:45
대칭암호방식의 사용현황 이러한 대칭암호 방식을 이용한 해쉬함수의 사용은 대표적인 예로 전자서명을 들 수 있다. 현재 해쉬함수를 이용한 전자 서명시 사용되는 공개 키 암호방식은 암호화, 복호화 과정의 소요시간이 너무 길고 안정성이 낮다. 따라서 해쉬함수를 이용하여 메시지를 원래보다 짧은 길이로 압축하여 바꾸어 놓은 뒤 전자서명을 생성하는 과정을 거친다. 그리고 공개키로 받아온 해쉬함수를 이용하여 압축한 후에 개인키로 변경하고 있다. 이러한 방법으로 해쉬함수는 효율성 보다는 안전성이 높기 때문에 사용되고 있으며 이러한 방식을 부가형 서명방식이라고 한다.
-
대칭키 암호를 이용한 해쉬함수> Information Security/Cryptology 2012. 5. 28. 00:43
암호학 적으로 안전한 해쉬함수를 만드는 방안으로 기존의 블록 암호 방식을 이용하여 구성하는 방법이다. 따라서 대칭키 암호를 이용한 해쉬함수에서는 블록 암호 방식을 사용한다. 가장 간단한 방법은 서명문 블록을 암호방식의 암호키로 사용하고, 전단의 해쉬값을 입력으로 새로운 해쉬를 출력하는 방법이 있다. [그림] 블록 암호방식을 이용한 일반적인 해쉬함수 블록 대칭 암호 방식을 이용한 해쉬함수를 일반화 하는 경우에는 3가지 변수가 4가지 값을 가질 수 있으므로 64가지의 해쉬함수가 존재할 수 있다. 그중 15가지는 하나의 입력에 대하여 하나의 출력이 나타나지 않으며 37가지는 안전하지 못하다. 블록 대칭 암호방식을 이용한 해쉬함수로 안전한 방식은 총 12가지가 있으며 모든 ..
-
DES(Data Encryption Standards)와 AES(Advanced Encryption Standards)> Information Security/Cryptology 2012. 5. 28. 00:37
DES(Data Encryption Standards)와 AES(Advanced Encryption Standards) (1) DES(Data Encryption Standards) [그림] DES의 암호화 구조 DES는 1973년 NBS 표준 암호로 공모되었고, 1977년 미 연방정부의 표준암호로 채택되었다. 현재는 쓰이지 않고 있는 암호방식이다. DES는 64bit 평문 블록을 64bit 암호문 블록으로 암호화한다. 이 때 사용되는 키의 길이는 마찬가지로 64bit이다. 대칭 암호 방식이므로 DES는 암호화와 복호화에 같은 키를 사용하고 있으며 총 16라운드로 구성되어 암호화 속도가 비교적 빠른 편이다. (2) AES (Advanced Encryption Standards) [그림]AES의 암호화과정..
-
대칭 암호 방식(Symmetric Cryptographic Technique)> Information Security/Cryptology 2012. 5. 28. 00:34
대칭 암호 방식(Symmetric Cryptographic Technique) 암호 방식은 암호화와 복호화에 사용되는 키의 기능과 키의 분배, 관리 방법에 따라 관용 암호 방식과 공개키 암호방식으로 분류된다. 관용 암호 방식은 암호화와 복호화에 동일한 키를 사용하고, 암호화와 복호화 과정이 대칭적이어서 대칭 암호 방식이라고도 한다. [그림] 동일한 키를 가진 형태 대칭 암호 방식은 암호화를 할 때에 평문을 비트 단위로 암호화를 하는 스트림 암호와 블록 단위로 암호화를 하는 블록 암호가 있다. 블록 암호의 설계는 구조에 따라 두 가지로 나뉜다. (1) Feistel 구조 [그림] Feistel 암호방식 Festel 구조는 1라운드에서 블록의 반만 변환이 되며, 암호화와 복호화가 같은 logic이다. 또한 ..
-
안티디버깅 기법 - CheckRemoteDebuggerPresent()> Information Security/Windows 2012. 5. 20. 00:26
안티디버깅 기법 - CheckRemoteDebuggerPresent() CheckRemoteDebuggerPresent()는 IsDebuggerPresent()와 비슷하고,WindowsNT버전에서만 가능하다. (XP이상)따라서, 이 함수 내부에서는 NtQueryInformationProcess()라는 API함수를 호출하고, EPROCESS라는 구조체 커널구조체에서 Debugport값을 검사한다. 또한, 디버거가 선택된 프로세스내에서 보여지는지에 대한 여부는TRUE와 FALSE값으로 나타내어진다. 먼저, CheckRemoteDebuggerPresent()함수는 한글로 표현하면'원격으로 디버거가 보여지는지를 체크' 한다는 말이다. 즉, 자신 이외의 다른 프로세서가 디버깅을 당하는 지를 알 수 있는 API함수..
-
lena 12강> Information Security/Reverse Engineering 2012. 4. 28. 16:28
lena 12강 @zrungee 이번에 열어볼 파일은 실행시켜보니 다음과 같은 창이 뜬다. 비정식버전이고, 시리얼을 등록하는 형태일 것이다. 이와같이 어떤 프로그램인지는 모르나, 시리얼을 등록하는 형태는 다음과 같은 방식으로 패치할 수 있다. Search for > All referenced text strings > Search for text 에서 'registration' (혹은 regist)로 검색. registration에 관한 성공/실패문을 찾았다. 첫번째. 해당 분기문으로 가서 JNZ를 NOP으로 바꾸어주는 방법과 두번째. 델파이로 제작된 파일을 분석하는 방법이 있다. 델파이로 제작된 파일은 점프문이 윗방향으로 역행하는 것이 특징이다. 점프문 아래의 MOV를 통해 알아보도록 한다. Find ..
-
안티디버깅 - IsDebuggerPresent> Information Security/Windows 2012. 4. 11. 08:53
안티디버깅 - IsDebuggerPresent IsDebuggerPresent()는 해당 프로세스가 디버깅을 당하고있는지의 여부를 PEB구조체의 디버깅 상태값을 확인한다. (디버깅 당할때 리턴 값 = 1, 아닐경우 리턴 겂 = 0) 이 함수로는 커널모드의 디버거는 탐지하지 못하고, 유저모드의 디버거만 탐지가 가능하다. kernel32.dll에서 export되는 함수이며, 보통 프로그램의 보호차원에서 쓰이지만 우회방법이 많다. 1. 환경구축 Visual studio로 Win32 Console응용프로그램으로 프로젝트를 생성하고, C++형식의 파일을 추가한다. 2. IsDebuggerPresent 샘플코드 작성 이 프로그램은 1초마다 IsDebuggerPresent()함수를 계속 호출하면서 디버깅당하고 있는지..