





Development(5)
-
XMSS(Extended Merkle Signature Scheme)
블록체인과 양자컴퓨팅2025.03.25 - [Blockchain/Base] - 양자 컴퓨팅과 블록체인2025.03.25 - [Development/Cryptography] - XMSS(Extended Merkle Signature Scheme)양자 내성을 가지는 암호 알고리즘인 XMSS에 대하여 확인해 본다.개요기존 비대칭 공개키 알고리즘이 소인수분해, 이산 수학적으로 풀기 어려운 구조이기 때문에 private key를 유추할 수 없는 구조이지만, 양자 컴퓨터를 이용하여 Shor's algorithm을 적용하면 이를 유추할 수 있게 된다.이를 대비하기 위하여 양자 컴퓨터로 암호학적 문제 해결이 어려운 충돌 저항성 기반 해시를 통한 서명 알고리즘을 사용하는 XMSS에 대하여 확인해 본다.XMSS는 Merk..
2025.03.25 -
인터페이스 구현 검증
코드를 보다 보면var _ SomeInterface = &SomeStruct{}이런 식으로 표현되어 있는 것을 종종 본적이 있을 것이다. Golang의 interface는 덕 타이핑을 사용하여 interface 내에 선언된 method들의 실제 구현 없이 method명만 언급되어도 된다.예를 들어 SomeInterface가 아래와 같은 method명 들을 가지고 있다고 가정하자.type SomeInterface interface { GetHomeDir() string GetApp(string) *types.App GetNumber() (*big.Int, error)}이 때 코드 내에 var _ SomeInterface = &SomeStruct{}로 명시된 상황에서 SomeStruct가 r..
2024.11.14 -
Rust macro 활용
Rust에서 자주 사용되는 Option을 살펴보자.pub fn example_function() -> Result { // Some codes... let a: Option = temp.get(1); Ok(())}이 때 a가 Option 타입일 때, a의 값이 존재하면 unwrap()을 통해 T를 가져오고, 존재하지 않다면 error를 return한다 가정한다. 그렇다면 코드 상에서는 아래와 같이 표현될 수 있을 것이다.pub fn example_function() -> Result { // Some codes... let a: Option = temp.get(1); if a.is_none() { return CustomError::AIsNone{} } ..
2024.11.13 -
프로그램에서 동작 중인 goroutines 확인
Golang으로 개발하다 보면 goroutine을 자주 사용할 수 밖에 없고, 멀티 쓰레드 간 채널을 통해 데이터를 자주 받아야 하는 상황이 잦을것이다. 이 때 송수신 채널들이 데이터를 주고 받지 못하던지, goroutine이 동작하지 않는다던지 하는 다양한 이유로 goroutine의 생사 여부를 확인해야 하는 과정이 필요할 수 있다. 간단하게 확인하는 방법을 공유한다.Golang 디버깅 프로그램 dlv를 설치하고, 제대로 설치되어 있는지 버전을 확인한다.$ go install github.com/go-delve/delve/cmd/dlv@latest$ dlv versionGoroutine 동작을 확인하려 하는 대상인, 내가 구동시키고 있는 프로그램의 PID를 확인한다.$ ps -ef | grep PROG..
2024.11.13 -
Ciphertext-Policy Attribute Based Encryption
※ 원글 작성 : 23년 3월 13일 CP-ABE(Ciphertext-Policy Attribute-Based Encryption)는 말 그대로 속성기반 암호화로써, 사용자의 속성(attribute)을 통해 encrypt/decrypt하는 암호학이다. 대학원 때 다뤄보니 아이디어도 신박하고 분산환경에서도 재미있게 쓰일 곳이 많아보여 차후에 더 쓰일 수 있지 않을까 하는 마음에 내용을 정리하려 한다. 개요 CPABE는 2007년에 Bethencourt 등의 논문에 제시되었다. 사용자의 비밀키(secret key)를 생성할 때 액세스 트리 정보를 사용하는 것이 아니라 데이터 자체를 암호화하기 위해 액세스 트리를 사용한다. 암호화된 데이터를 복호화하기 위해서는 사용자의 속성 집합을 기반으로 생성된 트리에서 생..
2023.06.15