2021/10 16

[Cipher] Elgamal - 엘가말 암호

저번에 확장 유클리디안 알고리즘때문에 꽤나 고생을 한적이 있는데 이번에는 엘가말이라는것을 만나게 됬다. 흑 복호화부분이 하나의 식이 있는게 아니라 상당히 다양하게 변형된 방법들이 있어서 헷갈렸다. 예를 들어서 하나의 동작이 있다고 하면 그 동작을 두부분으로 나눠서 진행하는 방법이 있다거나 아니면 곧장 답으로 직행할 수 있는 방법이 있다거나 하는 식이었다. 아래 유튜브에 어느 분께서 직접 풀이를 진행하시는데 가장 쉽게 이해할 수 있는 영상인것 같다. https://www.youtube.com/watch?v=QrsGVeZV7q8

Computer Security 2021.10.31

[Security] 컴퓨터보안에서 부인방지란 무엇일까?

부인방지라는 용어를 듣게 되었는데 처음 듣는 용어이지만 중요하지 않다고 생각해서 맥락상 의미만 추측만 하고 지나갔다. 그런데 계속해서 반복해서 등장하기에 그 의미를 정확히 찾아보았다. 사전적 정의는 아래와 같다. 사전적 정의가 아주 간단 명료해서 이것만 봐도 무엇인지 이해가 될 것이다. 부인방지: Non - repudiation 더보기 메시지의 송수신이나 교환 후, 또는 통신이나 처리가 실행된 후에 그 사실을 사후에 증명함으로써 사실 부인을 방지하는 보안 기술. 예를 들면, 전자 우편이나 메시지를 송신하고도 송신하지 않았다고 주장하는 송신자의 부인을 막는 송신 부인 방지(non-repudiation of origin), 메시지가 송달(전달)된 사실을 송달되지 않았다고 주장하는 수신자의 부인을 막는 송달 ..

Computer Security 2021.10.29

[Functional Programming] Functional Programming에서 변수의 의미

얼마전 썼던 포스트에서 함수형 프로그래밍에 대한 내용이 살짝 나오는데 거기서 함수형 프로그래밍에서의 assignment에 대해서 살짝 얘기를 했었다. 아래 링크에 가면 예전에 썼던 내용이 있다. https://spongeb0b.tistory.com/277 예전에 이해했던 내용이 살짝 명확하지 않았는데 얼마전에 더 나은 설명을 접할 수 있게 되어서 정리하게 되었다. 함수형 프로그래밍에서의 변수의 의미에 대해서 조금 더 자세히 알게 된 내용은 다음과 같다. 내가 알던 변수의 의미와는 사뭇 다른 개념이었다. 우리는 혹 변수를 얘기할적에 변수이름, 타입, 주소, 바인딩을 말하게 되는데 이중에서 바인딩을 말할적에 정적 바인딩, 동적바인딩을 말하곤 한다. 하지만 함수형 프로그래밍에서의 변수에서는 이런 바인딩자체가 ..

[C] 포인터가 가질 수 있는 값인 nil이란?

포인터가 가질 수 있는 값들 중에 nil이 있다는 글을 봤다. null의 오타겠거니 생각했다. null을 잘못적었구나 라고 생각했는데 실제로 nil이라는 걸 사용한다고 한다. swift에서 null대신 nil을 사용한다고 한다. 즉 swift에서는 null이없어서 그대신 nil이라는 개념을 쓴다고 한다. 그리고 사실 nil의 기본적의 정의 자체는 꼭 스위프트에서만이 아니라 "다양한 컴퓨터 프로그래밍 언어에서의 널포인터의 이름" 라고 정의된다. 즉 별다른거 없다. 그냥 null 인거다. 다만 다르게 부를 뿐이다. 그러니 앞으로 어떤 랭귀지든 nil이라는게 나오면 아 여기서는 null대신 이걸 쓰는구나 라고 알면 되겠다.

C & C++/C 2021.10.17

[Linux] exit과 _exit의 차이

리눅스 시스템 프로그래밍을 할적에 _exit을 본적이 있는데 exit은 main문제에서 쓰이는 반면 _exit은 자식 프로세스의 동작이 확실시되는 곳에서 사용되는 경우가 있었다. 둘 사이의 차이가 사후처리 즉 뒤처리를 하고 종료하느냐 하지 않느냐의 차이로 알고 있었는데 자식 process에서 쓰이는걸 보면 뭔가 이유가 있겠다 싶었다. 아래가 해당 자세한 내용이다. exit() 함수는 표준 입출력 정리 루틴을 수행하고 _exit()를 호출한다. exit() 함수는 파일 스트림에 대해서 동일한 작업을 수행하는데, 열려있는 파일의 스트림에 대해서는 fclose() 함수를 호출해서 버퍼에 남은 데이터를 모두 출력(flush)한다 일반적으로 _exit() 함수는 표준 입출력과 관련된 정리 작업을 수행하지 않는 것..

C & C++/C 2021.10.12

[RSA] Extended Euclidean Algorithm - 확장된 유클리디안 알고리즘

RSA를 알기 위해서는 확장된 유클리디안 알고리즘과 페르마 + 오일러 정리를 알고 있어야 한다. 그런데 확장된 유클리디안 알고리즘이 계산을 어떻게 하는지 도저히 감을 잡지 못했다. 페르마 + 오일러의 정리는 그냥 공식이 나와있고 그 공식이 뭔지만 알면 된다. (물론 증명은 따로 더 이해하려 하지 않았다. 사실 이해하려 했다가 무슨 말인지 몰라서 중간에 그만뒀다.) 그런데 확장된 유클리디안 알고리즘의 경우 문제를 풀기 위해서는 반드시 작동 원리를 알아야 했는데 간단한 계산의 연속임에도 불구하고 대체 뭘 계산하는건지 감이 잡히지 않았다. 오기가 생겨서 똑같은 영상을 최소 5번~6번정도는 돌려본것 같은데, 정말 어떻게 된건지는 모르겠지만 대여섯번쯤 볼때쯤에 어떻게 하는지 감이 왔다. 그리고 몇몇 문제를 풀어보..

Computer Security 2021.10.10
반응형