일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 달인막창
- mp4fpsmod
- 코루틴 컨텍스트
- PersistenceContext
- k8s #kubernetes #쿠버네티스
- vfr video
- 코루틴 빌더
- 겨울 부산
- preemption #
- kotlin
- tolerated
- 깡돼후
- table not found
- python
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- JanusWebRTC
- JanusWebRTCServer
- JanusGateway
- JanusWebRTCGateway
- terminal
- 자원부족
- 개성국밥
- taint
- 오블완
- PytestPluginManager
- VARCHAR (1)
- Value too long for column
- pytest
- 티스토리챌린지
- Spring Batch
목록Computer Security (23)
너와 나의 스토리
PQC(Post-Quantum Cryptography) 지금 컴퓨터+양자 컴퓨터들로 공격해도 안전한 암호를 만들어 보자. 양자 컴퓨가 공격하는 것을 대비하자. Quantum Computer(양자 컴퓨터) 0과 1이 중첩된 상태를 가지게 할 수 있다. NIST PQC standardization -> shor이 만듦 지금 암호는 몇십 년 유지되어야 하니, 10~20년 후 양자 컴퓨터로도 깨지지 않도록 구현해야 한다. 요구한 기능들: PKE(Public Key Encryption) KEM(Key Encaptualation Machanism) = key excahnge digital signature NTRU Public Key Cryptographic Techiques Based on Hard Problem..
Random Numbers(난수)가 사용되는 곳들 Key distribution Session key generation symmetric stream encryption에서 bit stream 생성 RSA public-key encryption 알고리즘에서 key 생성 난수의 특성 Randomness Uniform distribution: 나오는 값들의 분포가 동일 -> 0과 1에서 각각의 개수(분포)가 동일해야 한다. Independence: 긴 sequence를 봤을 때, 부분 부분 간의 관계성이 없어야 한다. Unpredictability 앞에서 동전 앞이 나와도, 다음에 뭐가 나올지 몰라야 한다. Forward unpredictabiliy: 지금 나온 값을 봐도, 다음에 나올 값을 몰라(예측할 ..
Hash Function 가변 길이의 데이터 블록을 input으로 받아 고정된 길이의 hash 값을 출력한다. 데이터 압축의 역할로 사용할 수 있음 가변 길이를 입력받는다고는 하나, 어느 정도 정해져 있어서 보통 padding으로 채움 h = H(M) M을 통해 h를 구하기는 쉬워야 하지만, h를 안다고 M을 쉽게 구할 수 있으면 안 된다. -> one-way property 두 가지 요구 조건을 만족해야 한다. The one-way property The collision-free property 서로 다른 input을 넣어 같은 hash 결과를 갖는 것 -> collision 이런 collision을 찾기 힘들어야 한다. 즉, The collision-free property는 다른 input이 들어..
Bitcoin 신뢰기관을 사이에 두고 거래하는 방식이 아니며, 중앙화된 서버가 없이 Peer-to-Peer 방식으로 거래 진행 (분산 방식) 실제 돈이라기보단 "거래의 기록"이다. 모든 거래가 투명하게 공개되고, 다수가 거래를 입증해주는 구조이다. (하나의 Ledger를 공유) Ledger에는 작액이 표시되어 있지 않음. 단지 모든 거래 내역이 공개되기 때문에 이를 통해 잔액을 계산할 수 있다. 익명으로 공개됨. Transaction Transaction Chain 앞에 거래 내역이 다음 거래 내역에 영향을 미침. 거래가 계속해서 진행됨에 따라, 신뢰가 쌓임 output은 다음의 두 가지로 분류된다. Unspent Transaction Output: 아직 사용하지 않은 돈 Spent Transaction..
공개 키 분배 위험 -> Meet-in-the Middle Attack 중간에서 공격자가 다른 사람으로 가장한 체 공개 키를 가로채서 변조할 수 있다. Public Key 분배 방법 1: Public announcement 자신의 public key 그냥 뿌림 -> 위험 Public Key 분배 방법 2: Publicy available Directory 게시판 같은 곳에 public key 업로드함 -> 위험 Public Key 분배 방법 3: Public key authority 중간에 진짜 public key들을 가진 Public-key Authority를 두고 이 곳에 물어봐서 다른 사람의 public key를 얻어옴. 예: Alice가 Bob에게 메시지를 보내려고 한다. Alice는 Public..
Digital Signature의 특성 누가 보낸 건지, 추가로 언제 보낸 건지 확인할 수 있음 서명이 생성될 당시, 메시지의 내용에 대한 확인할 수 있음 제삼자가 분쟁을 해결할 수 있음을 보장 Digital Signature 요구 조건 보낸 사람이 보낸 사실을 부인/위조할 수 없어야 함. 서명 생성 및 확인이 쉬워야 한다. private key가 없으면 서명 생성은 어려워야 한다. 기존 디지털 서명을 가지고 새 메시지를 구성하거나, 특정 메시지에 대한 사기 디지털 서명을 구성하여 디지털 서명을 위조하는 것은 계산상 불가능해야 한다. 간단한 전자 서명 과정 1. 메시지 길이가 길면 -> hash function을 사용해서 압축 2. Bob's private key로 digital signature gen..
Message Authentication Code 다음의 공격들을 예방한다. Masquerade(다른 사람으로 가장해서 작업) -> Authentication 필요 내용 변조, 순서 변경, 시간 값 변조 -> Integrity 필요 MAC(Message Authentication Code): Authentication과 Integrity를 동시에 제공하는 것 메시지와 key가 함수에 들어감. MAC = Keyed Hash MAC 사용 - 3가지 방법 목적: Message Authentication M: 메시지 원본, K: Key 송신: [M + MAC(K, M)]를 송신 -> 원본 메시지에 key를 넣은 MAC을 붙여서 전송하는 것 수신: 자기가 가지고 있는 key를 가지고, MAC을 생성해보고, 수신한..
대칭 암호에서 key를 상대방과 공유하는 방법 (Key exchange) RSA key encaptualation 한쪽에서 키 생성해서 전달해주는 방법(자신의 public key 생성해서 공유) Diffie-Hellman(DH) 양쪽에서 key를 생성 및 공유 양쪽에서 자신의 private key와 상대의 public key로 동일한 키를 각각 생성해내 사용 Diffie-Hellman Key Exchange 목적: 대칭 암호를 사용해 메시지를 보낼 때, 두 사용자가 안전하게 key를 교환하는 것. 이것의 효율성은 discrete logarithms 계산의 어려움과 상관있다. Discrete logarithms: $a^k mod n$ = b일 때, k 찾기 DH problem은 discrete log 문제..