목록전체 글 (372)
라떼는말이야

머신러닝 프로세스 1) 데이터 수집 단계 모든 데이터는 ‘컴퓨터가 이해할 수 있는’ 형식을 갖추어야 한다. 데이터 수집은 다양한 채널을 통해 이루어질 수 있다. 하드웨어로 수집 한다거나 웹 서버의 정보를 크롤링하거나, 이미 운영 중인 솔루션 또는 운영체제 자체에서 자동으로 기록하는 로그 정보도 좋은 데이터가 될 수 있다. 데이터가 어느 정도로 필요한 지 미리 규정짓는 것은 의미가 없다. 가능한 많은 데이터 확보가 우선 시 된다. 2) 특징 공학(Feature Engineering) 특징 공학 : 모델의 성능을 좌우하는 핵심 요소로, 머신 러닝 프로세스에서 가장 중요한 역할을 담당한다. 특징 공학은 데이터의 의미를 이해하고, 조작하고, 특징을 추출하고, 변환하는 모든 과정을 포함한다. (1) 관찰과 전처리..

인공지능 보안 사례 방어 관점 : 네트워크 침입 탐지, 악성코드 탐지, 침해사고 분석 공격 관점 : 탐지 모델 공격, 시스템 해킹 및 취약점 발견 위의 기저 동작은 거의 동일하다 기존에 알고 있는 법칙과 지금까지 확보된 데이터에서 찾아내 공통적인 특성을 통해 유사한 것과 다른 것을 찾아내는 것이 핵심 기술이다. 기존 시스템들이 악성코드를 순차적인 로직에 통과시키면서 악성 유무를 판단하는 것에 반해 인공지능 시스템은 악성코드가 악성일 확률이 몇 퍼센트인지 도출하는 과정을 통해 악성 유무를 판단한다. 침해사고 분석 : 조직의 시스템 또는 자원에 대한 아성 공격을 빠르게 탐지 및 대응하고, 사고의 원인 분석과 함께 피해 최소화를 위한 후속 조치를 수행하는 전반적인 과정을 포함한다. 예) 조직의 네트워크 입구에..

인공지능 두 가지 방식 - 데이터 중심 : 관찰과 가정을 바탕으로 한 경험을 통해 판단 - 알고리즘 중심 : 수학과 공학적인 방식으로 판단 예) 바둑의 경우 경우의 수가 매우 커서 알고리즘 만으론 부족하다. 알고리즘 기반으로 많은 게임 시뮬레이션을 통해 알고리즘을 보완해 나간다(데이터 기반 + 알고리즘 기반) 머신러닝 : 데이터에서 찾은 패턴을 토대로 미래를 예측하고, 상황을 판단하는 기술 머신러닝의 세 가지 영역 - 지도 학습 - 비 지도 학습 - 강화 학습 지도 학습 : 데이터와 정답지를 함께 사용해 하나의 함수를 유추하는 방법. 대표적으로 얼굴 인식, 주가 예측, 종양 판단 등 비지도 학습 : 정답지 없이 데이터만으로 데이터에 숨겨진 구조를 파악하여 함수를 찾아내는 방법. 아마존을 포함한 기업형 쇼..
출처: https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows Auto-elevated Executable DLL Procedure ✔️ bthudtask.exe DEVOBJ.dll DllMain ✔️ computerdefaults.exe CRYPTBASE.DLL DllMain ✔️ computerdefaults.exe edputil.dll DllMain ✔️ computerdefaults.exe edputil.dll EdpGetIsManaged ✔️ computerdefaults.exe MLANG.dll ConvertINetUnicodeToMultiByte ✔️ computerdefaults.exe MLANG.dll DllMain ✔️ computer..

※ 본 게시글은 모듈러 연산에 대해서 알고 있다는 전제하에 진행한다. 페르마의 작은 정리 (Fermat's little theorem) 페르마의 작은 정리에서 암호기술에 많이 응용되는 분야는 유한체에서의 역원 계산이다. 즉, 정수 a의 역원을 계산하는 방법으로 활용된다. 위 정의를 살짝 변형하면 다음과 같이 표현할 수 있다. 위 식을 잘 보면 a의 곱셈에 대한 역원을 생각해 볼 수 있다. 그 식은 다음과 같다. a의 역원은 a ^ (p-2) mod p이다. 이처럼 나타낼 수 있는 상황은 p가 소수일 경우에만 가능하다. 예제 1 위의 예제에서 3의 201 제곱에서 201은 10 x 20 +1로 표현할 수 있다. (3^10)^20 x 3에서 3^10은 mod11을 취했을 때 페르마의 작은 정리에 의해서 1이..

유클리드 알고리즘 (Euclidean algorithm) 두 정수 사이의 최대공약수(GCD, Greatest Common Divisor)를 구하는 알고리즘이다. 유클리드 알고리즘의 동작 두 정수 a, b가 있을 때 r은 a ÷ b의 나머지로 정의한다. 즉, r = a % b이다. (a > b로 가정) 위 프로세스와 같이 나머지가 0이 될 때까지 두 번째 인자 값을 첫 번째 인자 값에 넣고, 나머지를 두 번째 인자 값에 넣는다. 예시 Q1. 2740과 1760의 최대공약수 계산 2740과 1760의 최대 공약수는 20이다. Q2. 25와 60의 최대공약수 계산 25와 60의 최대공약수는 5이다. 위 예제에서는 r1과 r2 중 어느 쪽이 커도 상관 없다는 것을 보여준다. 구현 gcd = lambda a, b..

0. RSA의 키 생성 알고리즘 RSA의 키 생성 알고리즘은 다음과 같다. 자세한 건 이전 글을 참고 바란다. 2020/06/18 - [알고리즘/RSA] - [RSA] 소개 & 키 생성 알고리즘 서로 다른 큰 소수 p, q를 선택한다. (p ≠ q) N = p x q를 계산한다. φ(N) = (p - 1) x (q - 1)을 계산한다. φ(N) 보다 작고, φ(n)와 서로소인 자연수 e를 선택한다. (gcd(e, φ(N))=1, 1 < e < φ(N)인 e 선택) d x e를 φ(N)로 나누었을 때 나머지가 1인 정수 d를 구한다. ( de ≡ 1 mod φ(N) ) , 유클리드 호제법 이용 KU = {e, N}, KR = {d, N}이 된다. 위 알고리즘에서 해결해야 할 문제들이 있다. 1. 큰 소수 ..

RSA는 공개키 암호 알고리즘 중 하나이다. 1978년 로널드 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 레너드 애들먼(Leonard Adleman)이 공동 개발하였으며, 이들의 이름 앞글자를 따서 RSA가 되었다. RSA의 안정성은 큰 수에 대한 소인수 분해의 어려움을 기반으로 한다. 일반적으로 공개키 암호는 공개키와 개인키가 한 쌍을 이루며, 공개키로 암호화한 메시지를 개인키로 해독하여 열어볼 수 있기 때문에 암호화 키와 복호화 키가 다르다는 점에서 비대칭키 알고리즘의 특징을 가진다. RSA에서 사용되는 용어들 표기 설명 p, q 매우 큰 두 소수 (p≠q) N p x q gcd(a, b) a, b의 최대 공약수 φ(N) (p - 1) x (q - 1) a mod n a ÷..