2023/03

Intro. CI/CD는 필수 - Stress 탈출하자! 협업을 하다보면, github 프로젝트가 실행 되지 않는 코드를 합침으로써 터지는 경우가 발생한다. 사실 그 이유는 다양한데 각자의 환경 변수 설정이라던가, 다른 OS에서 개발한다던가 등이 있다. 하지만, 실행 되지 않는 코드가 이렇게 섞이기 시작하면, 불필요한 에너지 낭비가 당연히 존재하는 법 이 문제를 깃허브 액션을 통해 해결하고자 한다 배포까지는 고려하지 않고, 일단 CI 구성해서 사용하다가 확장해 나갈 것이다 Github Action 구성 - 정말 CI 인가? CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Deployment)의 약자로, 개발자들이 지속적으로 코드를 통합하고 배포하는 과..
스트림 암호 스트림 암호는 입력 요소를 연속적으로 처리하여 지속적으로 한 번에 한 요소씩 배출한다. 비록 블록 암호가 훨씬 많이 사용되기는 하지만, 경우에 따라서는 스트림 암호가 더 적합하기도 하다. 스트림 암호 구조 일반적으로 스트림 암호를 설계할 때에는 한 번에 한 비트씩 처리하거나 한 바이트보다 큰 자료를 처리할 수 있도록 만든다. 전형적인 스트림 암호는 한 번에 평문 한 바이트씩 암호화한다. 이 구조에서 랜덤한 8비트 숫자의 스트림을 만들어내는 의사 난수 비트 생성기에 하나의 키를 입력으로 사용한다. 의사 난수 스트림은 입력되는 키를 알지 못하면 예측할 수 없는 스트림이며, 한 번에 한 바이트씩 평문 스트림과 비트별로 XOR 연산된다. 즉, 평문과 키 스트림을 XOR함으로써 암호화와 복호화가 가능..
난수 난수는 다양한 네트워크 보안 응용에서 암호화를 할 때 중요한 역할을 한다. 난수 생성에는 여러 방법이 있으며, 하드웨어 기반의 난수 생성기(TRNG)와 소프트웨어 기반의 난수 생성기(PRNG)가 있습니다. TRNG는 물리적인 노이즈를 기반으로 진정한 난수를 생성하는 반면, PRNG는 알고리즘을 사용하여 난수를 생성합니다. 이 때문에 PRNG는 초기 시드 값에 따라 생성되는 난수가 결정되므로, 완벽한 예측 불가능성을 가지지 못할 수도 있습니다. 하지만, 적절한 알고리즘과 시드 관리를 통해 안전한 난수 생성이 가능합니다. 난수의 역할 다수의 네트워크 보안 알고리즘에서는 난수를 사용한다. RSA는 무엇인가? 대칭 스트림 암호 키 생성 임시 세션 키 용도 대칭 키 생성 TLS, WiFi, 전자메일, IPs..
의사 난수 난수를 암호 응용 분야에서 생성 할 때는 보통 알고리즘 기법에 기초해서 생성한다. 이런 알고리즘은 입력 값을 알면 출력 값을 정확히 알 수 있고, 통계적으로는 무작위성을 갖지 못하는 수열을 생성한다. 하지만 생성된 수열이 여러 가지 무작위성 테스트를 무사히 통과 할 수 있는데 이런 수열을 보통 의사 난수라 표현한다. 진성 난수를 생성하는 방법으로는 보통 TRNG를 사용한다 의사 난수의 경우에는 PRNG를 사용한다 하드웨어적 난수 생성 방법(TRNG) - 진성 난수 생성 TRNG는 입력 값으로 실제 랜덤한 정보를 사용하는데 이 입력 값을 보통 엔트로피 소스라고 한다. 엔트로피 소스는 컴퓨터의 물리적 환경에서 얻을 수 있는 값으로 키 입력 타이밍 패턴, 디스크 전기 작용, 마우스 움직임, 시스템 ..
AES Intro. 3DES로도 부족한 이유, 3 DES는 암호 해독에 대한 저항성이 크기 때문에 꽤나 안전하다. 하지만 단점이 있었으니 구현 속도가 느리다. DEA 보다 라운드 수가 3배나 많기 때문에 당연히 느릴 수 밖에 없다. 또한 DEA와 3DES는 64비트 블록을 사용하였다. 현 시점에서는 보안을 위해 더 큰 비트 블록을 사용 할 때가 되었다. AES는 무엇인가 3DES의 앞선 단점 때문에 AES가 등장하였다. 더 높은 보안성과 월등히 개선된 보안 알고리즘으로써! 블록 길이(크기) 128 비트 대칭 블록 암호 키의 길이는 128 192 256 비트를 지원 페이스텔 암호 구조 with 대칭 블록 암호가 아니다! 각 라운드에서 대체와 치환을 이용해 데이터 블록 전체를 병령 처리를 한다 AES 암호화..
3중 DES 3중 DES는 금융 분야에서 사용할 목적으로 1958년 처음으로 표준화 되었다. 3중 DES는 세 개의 키를 사용하고, DES 알고리즘을 3번 수행한다. 3 개의 서로 다른 키를 이용한 3 DES는 168 비트의 유호 키 길이를 갖는다 K1=K3를 사용해서 2 개의 키를 이용하는 것도 허용 한다. 암호화 알고리즘 알고리즘을 간단하게 설명 하면 암호-복호-암호 순서(EDE)를 따른다. 암호-복호-암호 를 거치는데 이 때 복호 과정 자체는 보안 강도에 크게 기여하지 않는다 복호화 과정은 주로 기존 DES 시스템과 호환성을 유지하기 위한 목적으로 사용된다. 그러나 전체적인 3DES 방식에서 보안 강도를 높이는데에 필요하기 때문에 이 과정이 포함 되었다 3DES 굳이 암호-복호-암호 과정을 가져야 ..
DES Data Encryption Standard는 암호화 알고리즘인 Data Encryption Algorithm (DEA)를 기반으로 한다. 암호화 알고리즘 평문의 길이는 64비트 평문이 길면 64비트로 나눈다 복호화 시에는 서브키의 순서를 뒤집어서 적용한다 키 길이는 56비트 DES의 구조는 [[Notes/페이스텔 암호 구조|페이스텔 암호 구조]]의 변형이다 라운드 회수는 16회 56 비트짜리 원래 키로부터 16개의 서브키를 생성한다 DES의 강도 암호화 알고리즘의 강도에 대한 문제는 두 가지 관점에서 볼 수 있다. 알고리즘 자체의 문제 그리고 56비트 키에 관한 문제이다. 알고리즘 자체 문제란 말은 알고리즘의 특성을 이용한 암호 해독 가능성이다. 하지만, DES는 많은 연구에도 불구하고 치명적인..
BlindTok (1) - 프로젝트 init 원활한 협업을 하기 위해서는 프로젝트 초반에 코드 린트나 커밋 규칙 등을 잘 정의하고 가는 것이 중요합니다 졸업 프로젝트인 BlindTok를 만들기에 앞서 프로젝트 초기 설정을 어떻게 하였는지 공유하기 위해 기록합니다 1. Code Format 및 Git ignore 파일 설정 Prettier : 코드 포맷터 Prettier는 코드 포맷터로, 프로젝트에서 사용하는 코딩 스타일을 일관되게 유지하는 데 도움을 줍니다. .prettierrc 파일을 사용하여 프로젝트별 Prettier 설정을 지정할 수 있습니다. 예를 들어, 들여쓰기 크기, 따옴표 스타일, 줄바꿈 방식 등을 설정할 수 있습니다. { "arrowParens": "avoid", "bracketSpacin..
람다 대수 수학자 알론조 처치가 순전히 수학적 방식으로 계산 개념을 설명하기 위해 개발한 형식 체계 수행 중인 작업을 명시적으로 정의할 필요 없음 즉 함수를 정의하고 바로 적용하는 방법론 람다식(Lamda expression) 람다식은 익명 함수를 정의하기 위한 식이다. 람다식은 [[일급 객체(first class)]]이다. 즉 인자로 사용 될 수 있다. 반환 값으로 사용 될 수 있다 아래는 람다를 BNF (Backus-Naur Form)로 나타낸 것이다 람다식은 보다시피 상수, 변수, 함수 정의, 함수 적용이 가능한다. 함수형 언어에서 람다식에 관심을 두는 이유는 문법이 간단하기 때문이다. 보통의 프로그래밍 언어는 구문 뿐만아니라 의미까지 분석을 해서 생각해야 한다. 함수형 언어에서는 문법이 너무 간단..
함수형 프로그래밍이란 무엇인가 함수형 언어/프로그래밍의 느낌을 알기 전, 먼저 수학적 함수를 알고 가야 한다. 수학적 함수는 입력 값에 따라 출력 값을 만들어내는 블랙 박스와 같다 수학적 함수의 특징 입력 값에 따라 출력 값이 결정 된다 수학적 함수와 프로그래밍에서의 수학적 함수의 개념은 다르다 [[함수형 프로그래밍의 본질]] 함수형 프로그래밍 언어는 프로그램을 수학적 함수의 조합으로 본다 프로그램의 동작을 즉 수학적 함수로 표현한다 매개 변수로 값을 입력 받은 뒤 적절하게 처리하여 값을 출력한다 함수형 언어의 특징 명령형 언어와의 차이점 함수형 언어는 변수를 할당 할 때, 공간을 새로 할당 하지 않고, 순수 계산에 의존 합니다 명령형 언어는 메모리 공간에 값을 계속 바꾸며 상태를 추적합니다 상태의 개념..
berom
'2023/03 글 목록