개발 과 보안/암호학의 모든것

후킹 : 특정 함수 코드를 가로채서 원하는 행위를 한 뒤 원래의 코드로 돌려주는 기법 안드로이드(ARM)에서는 어떠한 방식으로 후킹이 작동되는가? 리눅스 기반이므로 리눅스에서 사용되던 후킹 기술과 유사. 1. PLT (Procedure Linkage Table) hook : a 가져오라했는데 b 가져오게 하는거 (동적 링킹을 사용할 때) 2.GOT (Global Offset Table) hook : PLT랑 비슷한데, 쟤( PLT )는 테이블을 변경하는거고, 얘는 아예 쌩으로 바꾸는거. 3.Inline Hook (Trampoline Hook): 코드 내의 특정 지점에 훅을 설치하여, 해당 지점의 실행 흐름을 변경하는 기술 4.Method Swizzling (Method Hooking): 런타임에 특정 메..
Potential Attacks on RSA Factorization (소인수분해): 이 공격은 RSA의 핵심인 N=p×q를 소인수분해하여 p와 q를 찾는 것. 이러한 공격은 특히 N이 충분히 크지 않거나 잘못 선택된 경우에 성공할 가능성이 높아집니다. Chosen-Ciphertext Attack (선택 암호문 공격): 이 공격은 암호화된 메시지를 조작하여 복호화 과정을 통해 원본 메시지에 대한 정보를 얻는 방법입니다. RSA의 곱셈성질을 이용하여 수행될 수 있습니다. Encryption Exponent Attack (암호화 지수 공격): 이 공격은 공개키의 일부인 암호화 지수 E가 작을 때 발생할 수 있습니다. 이는 특정 상황에서 메시지를 복원하기 쉬워지게 할 수 있습니다. Coppersmith공격, ..
RSA의 기본 원리: 암호화: P^E mod N = C 복호화: C^D mod N = P 여기서 P는 플레인 텍스트, C는 암호화된 텍스트, N은 두 큰 소수의 곱, E는 공개키, D는 비밀키입니다. 왜 N은 큰 소수의 곱이어야 하는가: 보안: RSA의 보안은 소인수분해의 어려움에 기반합니다. 큰 소수의 곱 N=p×q을 소인수분해하는 것은 현재의 컴퓨터 기술로는 매우 어렵습니다. 만약 N이 소수가 아닌 작은 수들의 곱이라면, 소인수분해가 쉽게 가능하여 암호가 쉽게 깨질 수 있습니다. 수학적 성질: RSA는 N이 소수의 곱일 때 특정 수학적 성질을 이용합니다. 이러한 성질은 N이 소수의 곱이 아닌 경우에는 성립하지 않습니다 N이 큰 소수의 곱일 때의 특정 수학적 성질: RSA 암호화의 안전성은 N이 큰 소..
차분(difference) : 두 개의 다른 PlainText의 배타적 논리합(XOR) 차분 분석: 차분이 암호화를 통해서 어떻게 확산되는가를 분석하는 것 평문 P₁와 P₂가 있을 때, 이 두 평문의 차분은 두 평문을 XOR 연산한 결과로 계산됩니다. 만약 P₁와 P₂가 동일하다면, 그 차분의 결과는 0이 됩니다. XOR 연산의 특성 상 동일한 비트를 XOR 연산하면 결과는 0이기 때문입니다. 그러나 P₁와 P₂ 사이에 하나의 비트 차이가 있다면, 그 차분은 해당 비트 위치에서 1의 값을 가지게 됩니다. 이러한 방식으로, 평문의 차이가 클수록 차분의 값도 커지게 됩니다. 반대로, 평문의 차이가 없으면 차분은 0이 됩니다. 차분 분석의 주요 목적은 암호화 과정에서 평문의 작은 차이가 어떻게 암호문에 영향을..
암호학에서 클로드 샤논(Claude Shannon)은 정보의 보안성을 높이기 위한 두 가지 기본 원칙, 즉 "확산(Diffusion)"과 "혼돈(Confusion)"에 대해 설명했습니다. 이 두 가지 원칙은 현대의 대부분의 암호화 알고리즘의 기본이 되는 개념들입니다. 확산 (Diffusion): - 돌멩이 뺐는데 댐이 무너진 격! 나비효과 - 의미 : 평문 중 작은 부분의 변경이 암호문 전체에 Big 영향을 주는 것. - 목적: eve가 암호문의 일부만을 얻었을 때 평문의 정보를 찾아내기 어렵게 만드는 것. - 예시: 당신이 "HELLO"라는 평문을 암호화한다고 가정해봅시다. 만약 당신이 'H'만 변경하면 암호문 전체가 아주그냥 쥰내게 바뀌어야 합니다. 그러면 eve는 화들짝놀라서 무릎을 탁 치고 광광 ..
순환 이동(Circular Shift) 순환 이동 연산은 데이터의 비트를 한 방향으로 이동시키되, 이동 과정에서 데이터의 경계를 넘어가는 비트는 반대쪽 끝으로 다시 돌아오는 연산입니다. 즉, 데이터가 순환적으로 이동하게 됩니다. 예를 들어, 8비트 데이터 10110011을 왼쪽으로 3비트 순환 이동하면, 10011101이 됩니다. 서큘러 연산(Circular)과 시프트연산(Shift) Shift Left: 데이터를 왼쪽으로 이동. 왼쪽 끝의 비트는 오른쪽으로 돌아옴. Shift Right: 데이터를 오른쪽으로 이동. 오른쪽 끝의 비트는 왼쪽으로 돌아옴. * 이 두 연산은 서로 역함수 관계임. 왼쪽으로 n 비트 이동한 데이터를 원래 상태로 돌리려면 오른쪽으로 n 비트 이동해야함 예시 키: 왼쪽으로 3비트 ..
목차 고전과 현대 대칭키 암호의 차이점 대치 암호 vs 전치 암호 풀 사이즈 키 사이퍼 S-box, P-box 및 블록 암호의 구성 요소 고전과 현대 대칭키 암호의 차이점 K 비트 키를 사용해 암호화 과정 진행( 일반적으로 n은2의 제곱수 64, 128,256,512를 사용) N 비트 입력 ->K 비트 키사용-> N 비트 아웃풋으로 알고리즘 진행 예제5.1) 800bit 생성. 근데 한 암호화기계에 들어가는 팀은 64bit 이므로. 남는 사람들 32bit. 그래서 padding 32 해주면됨. 답 : 32bit 대치 암호 vs 전치 암호 현대암호의 모든 구성 : 대치암호(substitution) or 전치암호(Transposition) 전치 : 0 -> 1, 1-> 0 대치 : 0 과 1 로 이루어진 데..
목차 XOR 연산의 성질 XOR의 중요한 특징 암호학에서 XOR의 활용 XOR 연산의 성질 클로우저(Closure): input bit 수 = output bit 수 예: 101⊕010=111101⊕010=111 결합 법칙(Associative Law): 3개의 숫자가 있을 때, 순서 변경해도 결과는 ok 예: a ⊕ ( b ⊕ c ) = ( a ⊕ b ) ⊕ c 교환 법칙(Commutative Law): 두 숫자는 바꿔도 결과는 ok 예: a ⊕ b = b ⊕ a 항등원(Identity): 어떤 연산을 할 때 그대로 원래의 값을 반환하는 원소를 항등원이라 합니다. xor 연산에서 0은 항등원이다.(외워라걍;;나자신아) 예: a ⊕ 0 = a 역원(Inverse): 어떤 원소와 연산했을 때 항등원이 나오..
Jamm2
'개발 과 보안/암호학의 모든것' 카테고리의 글 목록