전체 글
-
KMS11 : C language ECC 키 연산 결과 보고Program_Light 2021. 5. 1. 13:00
이 글이 공개되는 시점은 5월 초 쯤이겠지만, 이 글을 작성하는, 지금 2월 16일쯤에, ECC프로젝트를 적절히 테스트한 후 마무리 하기로 하였다. 개인적으로 몽고메리를 구현해보고자 하는 욕심이 있었지만, 그럴려면 Divide와 powMod연산을 다 갈아엎어야 해서... 이제 새로 시작되는 고등학교 생활을 위해 접어두기로 했다. 물론 시간이 많이 나게 된다면, 그때 구현할 의향은 있다, 작년 7월쯤에 RSA끝나고 시작해서 2월까지 왔으니 8개월쯤 한 셈이다;; RSA구현할 때 보다 거의 1.6배가 걸렸다. (물론 마지막 한달간은 간단한 최적화만 했지만) 개인이 혼자 하는 프로젝트라서 특히 초반 자료조사가 힘들었다. 특히 타원곡선 자료들 긁어오는게 너무 힘들었다. 많은 것을 공개하지는 못하지만, 표준 타원..
-
KMS11 : C language ECC 키 연산 중간 보고(4 - 0.0.2)Program_Light 2021. 4. 24. 13:00
지난번에 개발하던 RSA알고리즘을 거의 마무리 짓고 ECC 알고리즘을 개발하여, 프로그램이 입력값에 따라 계산을 하고 그 결과를 확인할 수 있는 수준까지 개발하였다. 아직 완벽한 단계는 아니며, 약 30%까지 개발했다고 할 수 있다. 최근 세 달 정도 ECC제작을 핑계로 포스팅을 잘 하지 않았다.(+기말고사, NYPC, KOI) 사실상 블로그 조회수의 대부분은 그나마 덜 마이너한 이진법 암호가 모두 책임지고 있지만 활동은 안해서인지 유입량이 줄었다. 조회수 늘어난다고 딱히 쓸 곳은 없지만 개인적으로 참 아쉬운 기분이다. 게임에서 골드 빼았기는 기분이 이런건가. * 이 글은 2020.10.31에 작성된 제작자의 네이버 블로그 글입니다. 결론적으로 말하자면 세 달을 투자한 것에 비해 결과가 좋지 못하게 ..
-
KMS10 : C language RSA 키 연산 결과 보고(Arduino Due 순정)Program_Light 2021. 4. 17. 13:00
2020년 2월에 기회가 생겨 RSA알고리즘이라는 것을 접하게 되었다. 이 알고리즘을 5달 반동안 개발하며, RSA를 거의 완벽하게 구현하여, 프로젝트를 마무리 지으며 최종결과 포스팅을 올린다. 이 글을 쓰는 시점에서 RSA과 ECC의 기반이 되는 2048bit 정수 변수 라이브러리를 모두 비공개로 전환했습니다. 그 이유는 이번에 제 스승님께 제가 만든 프로그램 배포에 관해 물었더니 극구 반대를 하시길래 기존에 공개되어있던 프로그램 까지 모두 비공개로 바꾸었습니다.(다시 보니 별 특별한 기술은 없더군요. 다행) 그래서 이번에는 소스를 제외하고, RSA키 생성 프로그램 결과만을 소개하려고 합니다. 제목에서와 같이 Arduino Due순정에서 테스트 하였으며, 설치한/삭제한 라이브러리는 듀에 라이브러리 ..
-
KMS08 : C++ 한글→숫자 변환함수 소스Program_Light 2021. 4. 10. 13:00
간단하게 한글을 수로 변형시켜주는 함수를 개발하였다. 상수와 for문으로 이루어진, 간단함 함수이며, 네이버 블로그 초창기 시절에 개발한 것이라 성능이 그렇게 뛰어나지는 않다. 안녕하세요 KMS입니다. 이번에는 지난번에 만들었다 삭제한 KtoI변환함수를 만들었습니다. 설명은 너무 복잡하므로 생략하겠습니다. 소스코드 아래있는 파일은 릴리즈 파일 입니다. KMS08.h #pragma once #ifndef __KMS_08__ #define __KMS_08__ #include #include namespace korean_KMS { namespace _for_kms08_inline_func { #define alpha_plus_0"영" #define alpha_plus_1"하나" wchar_t read_alp..
-
KMS07 : C++ 소인수분해, 소수판별, 확장유클리드 알고리즘 소스Program_Light 2021. 4. 3. 13:00
요즘 좋은 영감이 떠오르질 않네요. 그래서 지난번 KMS06에서 만든 확장유클리드 알고리즘과 여러 소수관련 함수들을 통합한 프로그램을 하나 만들었습니다. 참고로 소수 탐색기는 KMS04에서 만들었는데, KMS04소스 하나에만 500줄을 넘어가서 굳이 합치지는 않았습니다. 사실상 KMS04, KMS06종합인 KMS07이기 때문에 이번에 설명은 따로 하지 않겠습니다. 소스 source.cpp #include #include #include #include using namespace std; namespace GenP_KMS { #define TRUE1 #define FALSE0 #define MAX(x, y)((x > y) ? (x) : (y)) #define MIN(x, y)((x < y) ? (x) :..
-
KMS01 : 자작 Algorithm Tayo AlgorithmProgram_Light 2021. 3. 27. 13:00
이번에는 옛날에 만든 알고리즘을 하나 올려보도록 하곘습니다. 참고로 제가 2019년에 주소창 최우수상 탄 알고리즘이 바로 이겁니다. 알고리즘 설명 이 알고리즘은 평면방정식과 원주각의 응용버전으로서 1대의 카메라의 높이, 설치각, 촬영각등이 주어졌을때 카메라의 사진상에 있는 점의 위치를 삼차원의 점의 위치를 계산할 수 있습니다. 이때 삼차원에서 카메라가 바라보는 방향을 -x, 높이성분을 y, 나머지 수평성분을 z라고 합니다. 카메라의 위치는 원점(0, 0, 0)입니다. 예를 들어, 카메라가 45도를 바라보게 설치되어있고, 카메라가 수직으로 60도, 수평으로 60도를 촬영할 수 있고, 설치높이가 10m일때를 가정한다면 물체가 카메라가 찍은 사진의 중앙에 위치한다면 물체의 위치는 라고 할 수 있습니다. (..
-
KMS04 : C++ 소수탐색 프로그램 Ver3 (source)Program_Light 2021. 3. 20. 13:00
안녕하세요 tomskang입니다. 오늘은 지난번에 만든 소수 탐색기를 업그레이드 시켜보았는데요 이번에 확실하게 프로그래밍을 각잡고 해서, 최적화되었다 할 수는 없지만, 여러 방면으로 지금까지 나온 소수탐색기 중 가장 혁신적인 성능을 가졌습니다. https://blog.naver.com/tomskang/221714771632 [C++]소수탐색 프로그램 Ver2(source) 이번에 여러모로 바빠서 프로그래밍을 못했었다. 그래서 오랜만에 연습도 할 겸 지난번에 만든 소수탐색 ... blog.naver.com 1. 바뀐점 2. 소스 3. 함수설명 4. 실행 바뀐점은 위와 같습니다. 대부분의 블로그에서는 보지 못했던 새로운 기능을 추가하고자 생각하였고, 그 결과 "저장"이라는 새로운 기능이 생겨났습니다. [소..
-
KMS04 : C++ 소수탐색 프로그램 Ver2 (source)Program_Light 2021. 3. 6. 13:00
이번에 여러모로 바빠서 프로그래밍을 못했었다. 그래서 오랜만에 연습도 할 겸 지난번에 만든 소수탐색 프로그램을 고쳤다. 대부분의 입력과 출력, 원리는 기존과 똑같아서 간단하게 적엇으니 혹시 헷갈린다면 아래 링크를 참고하면 된다. https://blog.naver.com/tomskang/221524574533 소스코드 source.cpp #include #include #include #define TRUE1 #define FALSE0 using namespace std; int f(int N) { static bool C = TRUE; if (C) { N += 2; C = FALSE; } else { N += 4; C = TRUE; } return N; } int main(void) { vector pr..