일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 카카오 테크 캠퍼스
- 취업
- 개발/환경
- 개발/컴퓨터네트워크
- 개발/Java/Spring
- 개발/webrtc
- 개발/OOP
- 대외활동/카카오테크캠퍼스
- ⌨️Developer
- 개발/Tools/프레임워크/Spring
- 개발/언어론
- 카카오테크캠퍼스
- electron
- 개발/에러
- 개발/보안
- 알고리즘
- 개발/CS/OS
- 개발/언어/Java
- 개발/MySQL
- 개발
- ai
- 카테캠
- 개발/네트워크
- 개발/프레임워크&라이브러리
- 개발/Electron
- AI/GPT
- 개발/CS/알고리즘
- AI/ML
- ⌨️Developer/보안
- 개발/Java
- Today
- Total
목록Computer Science (173)
봄수의 연구실

비대칭 암호(공개키)를 이용한 키 분배 공개 키 암호의 가장 주요한 역할은 키 분배에 관한 것이다 공개 키 분배 대칭 비밀 키 분배 공개 키 인증서 공개키의 핵심은 해당 알고리즘을 사용하는 누구라도 자신의 공개 키를 사용자 그룹 누구에게나 보낼 수 있다. 하지만, 역으로 누구나 공개 선언을 할 수 있다는 것이다 이를 해결하기 위해 등장한 것이 공개 키 인증서이다 공개 키 인증서란? 공개 키와 키 소유자의 사용자 ID로 구성 이를 신뢰할 만한 제 3자(CA)가 서명 대략적인 알고리즘은 아래와 같다 송신자가 서명 안된 인증서(사용자 ID + 사용자 공개 키)와 서명된 디지털 인증서(CA의 개인 키로 해시 코드를 암호화)해서 전송합니다 수신자는 서명 된 디지털 인증서를 CA의 공개키로 복호화 하고 서명 되지 ..
컴퓨터 네트워크 보안 4장 연습 문제 1번. Holmes의 이야기를 마무리 하라 1. A는 무작위 숫자 R을 생성하고, 자신의 이름 A, 목적지 B와 함께 E(Ka, R)를 서버에 전송한다. 2. 서버는 E(Kb, R)를 A에게 응답으로 전송한다. 3. A는 E(R, M)과 함께 E(Kb, R)를 B에게 전송한다. 4. B는 Kb를 알고 있으므로, E(Kb, R)을 복호화하여 R을 얻고, R을 사용하여 E(R, M)을 복호화하여 M을 얻는다. Solution Z는 서버에게 소스 이름 A와 목적지 이름 Z(자신의 것)를 전송하며, 동시에 E(Ka, R)을 전송합니다. 이는 마치 A가 B에게 전송한 것처럼 동일한 키 R로 암호화된 동일한 메시지를 전송하려는 것처럼 보입니다. 서버는 A에게 E(Kz, R)를 ..
암호 피드백 모드 (CFB) CFB는 "Cipher Feedback"의 약자로, 블록 암호화 모드 중 하나입니다. CFB 모드에서 평문은 암호화 과정에서 이전 암호문 블록과 XOR 연산을 수행하여 생성됩니다. 이 때, 이전 암호문 블록은 평문이 아닌 이전에 생성된 암호문 블록을 사용합니다. CFB 모드는 암호화에 사용되는 블록 크기와 상관없이 임의의 비트 수를 사용하여 암호화할 수 있습니다. 이 모드의 가장 큰 특징은 피드백 메커니즘에 있습니다. CFB 모드에서는 암호화된 이전 블록이 다음 블록을 암호화하기 위한 입력으로 사용되기 때문에, 암호화 된 결과를 복호화하려면 이전 블록들이 필요합니다. 이로 인해 CFB 모드는 연속된 데이터 블록들을 암호화하고 복호화하는 데 유용합니다. CFB 암호화 CFB 암..

페이스텔 암호의 암호화와 복호화 증명 페이스텔 암호는 여러 암호의 기초가 되는 알고리즘이다. 특징이라면 복호화와 암호화 알고리즘이 동일하다. 요즘 네트워크 보안을 공부하고 있는데, 문제를 풀던 중 페이스텔의 복호화가 페이스텔 암호화의 복호화임을 보이라고 해서 풀어보려고 한다. 페이스텔 암호화/복호화의 기본 구조 일반식으로 표현하면 아래와 같다. 암호화와 복호화가 모두 동일하다 REi-1 = LEi REi-1 = LEi-1 ⊕ F(REi-1, Ki) 암호화와 복호화가 왜 동일할까? 방식이 동일하다고 복호화라는 건 논리가 약하고 예외가 발생한다. 조금 더 생각을 해보자 암호화 과정에서 사용 되는 함수가 self-invertible 속성을 가지고 있기 때문이라고 하는데, 아직 이해가 되지 않는다 페이스텔 암호..
TEA 알고리즘 컴퓨터 네트워크 보안 문제 풀이 중 만난 TEA 알고리즘을 파헤쳐 보자 TEA의 상수열은 왜 사용하는가? 상수열을 사용하면, 암호화 알고리즘의 안정성이 향상 된다 무작위성을 높이고 공격자가 평문와 암호문 사이의 패턴을 찾기 어렵기 때문이다. 암호화 프로세스 암호화 프로세스는 위와 같다. 입력 받은 문자열을 절반으로 잘라서 연산을 마치고, L과 R을 뒤집는 구조이다 복호화 프로세스 TEA 알고리즘의 복호화가 가능한 이유는 암호화와 복호화 과정이 거의 동일한 구조를 갖고 있기 때문이다. 암호화와 복호화는 기본적으로 동일한 라운드 함수를 사용하며, 복호화 과정에서는 암호화 과정에서 사용된 서브키와 델타 값이 역순으로 적용된다 그래서, 위의 암호화 프로세스를 반대로 값을 입력했는데, 답이 솔루션..
고차 함수 고차 함수(Higher-order function)란 다른 함수를 인자로 받거나, 함수를 반환하는 함수를 의미합니다. 고차 함수는 함수형 프로그래밍에서 핵심적인 개념 중 하나로, 함수를 이용한 추상화를 가능하게 합니다. 고차 함수를 사용하면 코드를 간결하게 작성할 수 있고, 코드의 재사용성이 높아집니다. 일급 객체(First-class citizen)란 프로그래밍 언어에서 어떤 값이나 객체가 다음과 같은 조건을 충족할 때를 말합니다: 변수에 할당될 수 있다. 함수의 인자로 전달될 수 있다. 함수의 반환값으로 사용될 수 있다. 자료 구조에 저장될 수 있다. 함수형 프로그래밍 언어에서는 함수를 일급 객체로 취급합니다. 이 말은 함수를 변수에 할당하거나, 다른 함수의 인자로 전달하거나, 반환값으로 ..
익명 함수 익명 함수(anonymous function)는 이름이 없는 함수를 의미합니다. 일반적으로 함수를 정의할 때, 함수의 이름을 지정하여 참조하거나 호출할 수 있지만, 익명 함수는 이름이 없기 때문에 일회성으로 사용되거나 다른 함수에 인자로 전달됩니다. 익명 함수는 함수형 프로그래밍(Functional Programming Language)에서 주로 사용되지만, 몇몇 명령형 언어(Imperative Programming Language)에서도 사용 가능합니다. 함수형 언어는 함수를 일급 객체(First-class citizen)로 취급하여, 함수를 변수에 할당하거나 다른 함수의 인자로 전달할 수 있습니다. 익명 함수의 주요 장점은 다음과 같습니다. 코드의 간결성: 이름이 없기 때문에 코드를 간결하..
Kerberos 심층 이해 Kerberos를 공부하며 모호했던 점을 확실히 하고자 합니다. 계층 구조로 Kerberos를 그리고, 왜 사용하며, 무엇이 중요한지 등 핵심을 알아보겠습니다 Kerberos의 세부사항을 살펴보자 일단 상호간 무조건 암호화가 되어있다 C와 AS는 서로 공유하는 키로 무조건 암호화해서 보낸다 또한, 티켓은 C가 열어 볼 수 없다, 오직 서버 측을 위해 생성 된 것이다 Kerberos의 핵심은 무엇인가? 중앙 집중식 인증 클라이언트 - 서버 상호 인증 네트워크 상의 비밀 유지 Kerberos의 전제 조건 사전 키 공유 : AS(인증 서버)는 클라이언트의 비밀번호와 TGS의 비밀 키를 사전에 안전하게 받음 시간 동기화 : 클라이언트와 서버의 시간을 동기화하여 재전송 공격 방어 Ker..
컴퓨터 네트워크 보안 3장 연습 문제 3. 메시지 길이가 다음과 같을 때, SHA-512 패딩 필드에 들어가야 할 값을 나타내라 1919 비트 1919-1024 = 895 1024-(128+895) = 1bit 1920 비트 1920-1024 = 896 1024-(128+896) = 0 Sha512는 Padding을 무조건 추가하므로 1024bit를 추가 한다. 1921 비트 1921-1024 = 897 1024-(128+897) = -1 1024 - 1 = 1023bit 6. Toy Tetrgraph Hash(tth) 이 문제는 2진수 자료 대신 문자를 가지고 SHA에서 사용하는 방법으로 해시 함수를 만드는 방법을 소개 하고 있다 문자로 이루어진 메시지가 주어졌을 때,tth는 4개의 문자로 된 해시 값..
암호 블록 체인 모드 (CBC) CBC (Cipher Block Chaining) 모드는 대칭 키 암호화에서 사용되는 블록 암호 운용 모드 중 하나입니다. 이 모드는 암호화되지 않은 평문 블록과 이전의 암호문 블록 간에 XOR(배타적 논리합) 연산을 수행한 후, 그 결과를 블록 암호 알고리즘을 통해 암호화하여 암호문 블록을 생성합니다. 이 과정은 평문의 각 블록에 대해 연쇄적으로 수행됩니다. CBC 모드의 주요 특징은 다음과 같습니다: 초기화 벡터 (IV) CBC 모드에서 첫 번째 평문 블록을 암호화하기 전에 초기화 벡터(IV)라는 무작위 값과 XOR 연산을 수행합니다. 이렇게 하면 동일한 평문 블록이 암호화될 때마다 다른 암호문 블록이 생성되어, 암호문의 패턴 분석을 어렵게 만듭니다. 오류 전파 암호문..