Elliptic Curve Cryptography(ECC)
사전 지식(not required) Finite Field (유한체) 2개의 연산(여기서는 +, *로 가정)에 대해 다음 성질을 만족하는 요소의 집합 유한성(finiteness): 원소의 개수가 유한 폐쇄성(closure): 연산의 결과도 동일 집합의 원소 결합성(associativity): a+(b+c...
사전 지식(not required) Finite Field (유한체) 2개의 연산(여기서는 +, *로 가정)에 대해 다음 성질을 만족하는 요소의 집합 유한성(finiteness): 원소의 개수가 유한 폐쇄성(closure): 연산의 결과도 동일 집합의 원소 결합성(associativity): a+(b+c...
정수론(not required) https://redcarrot1.github.io/posts/Number_Theory_1 https://redcarrot1.github.io/posts/Number_Theory_2 Modular https://redcarrot1.github.io...
본 포스팅에서는 암호를 이용한 여러 프로토콜을 살펴보고자 한다. 사실 각 주제마다 방대한 양이지만 여기서는 가볍게 컨셉만 확인하자 Massey-Omura 공개 또는 서로 공유하는 정보가 아무것도 없는 암호 하지만 state를 유지해야하기 때문에 실용성이 낮다. Suitcase Example ...
Hybrid crypto system 상황 : $A$가 $B$에게 메시지 $m$을 보내자 $B$가 공개한 key : $n_B, e_B$ $B$의 비밀키 : $d_B$ Step1. $A$는 랜덤한 $k$를 만들어서 AES로 암호화 함 (대칭키) $m \rightarrow AES(k)\rig...
Classical Systems Transposition(전치법) 단순히 메시지에 있는 문자의 위치 변경 Scytale : 일정 굵기의 봉에 종이를 둘러야 메시지를 읽을 수 있음. key=봉의 굵기 Monoalphabetic substitution(단일 문자 치환) Caesar ...
Man in the Middle of Attack 공개키 신뢰 문제 Bob은 $P_A$가 Alice의 것임을 어떻게 믿을 수 있을까? 공개키에 대한 증명(Certification) 필요 공개키 기반구조(PKI) 인증서(Certificate): 각 사용자의 공개키에 대한 증명서 인증 기관(CA: Certificate A...
Intro 2학기 개강에 맞춰 대규모 업데이트를 진행했습니다. 추가된 기능이 여러 개 있지만, 굵직한 기능 위주로 소개하고자 합니다. 앱 버전 및 시스템 체크 API 앱 강제 업데이트 화면을 보여주기 위해, 앱 실행 시 관련 API를 호출합니다. 모든 API에 인터셉터를 추가하여 매번 체크하려고 했으나, 우리 서비스의 연속 이용 시간이 짧다는 점을 ...
Intro 백엔드 서버를 개발하면 시간 관련 로직을 자주 사용합니다. 게시물 작성 시각이나 특정 날짜로 필터링하는 기능은 주변 서비스에서 쉽게 찾아볼 수 있습니다. 하지만 시간 관련 로직은 테스트하기 어렵습니다. 특히 LocalDateTime.now() 처럼 static 메서드를 직접 사용한다면 mocking하기 복잡해집니다. 또한 JpaAuditin...
Intro 이번 게시물에서는 gRPC와 Http의 속도 차이를 비교하려고 한다. 전체적인 예시 코드는 여기를 참고했다. gRPC RPC의 가장 큰 이점은 애플리케이션 레이어의 코드에 있는 것 같다. stub 객체에 마치 로컬 함수를 호출하는 것처럼 작성하면 된다. public class HelloServiceClient { private ...
Intro 지난 RPC 게시물에 이어서, 이번에는 Google에서 만든 gRPC의 베이스 개념을 정리하고자 한다. gRPC는 직렬화 구조로 Protocol Buffer을 사용하며, 통신 프로토콜로는 HTTP/2를 사용한다. Protocol Buffer 프로토콜 버퍼(Protocol Buffer, protobuf)는 직렬화 데이터 구조이다. 직렬화(s...