728x90
반응형

전체 글 1002

ElGamal 비대칭키 암호화 알고리즘

ElGamal 비대칭키 암호화 알고리즘오늘은 비대칭키 암호화 알고리즘 중 하나인 ElGamal 암호화 알고리즘에 대해 알아보겠습니다. ElGamal 암호화는 보안성과 유연성을 제공하는 알고리즘으로, 특히 디지털 서명과 키 교환에 사용됩니다. 이번 포스팅에서는 ElGamal 암호화의 개념을 설명하고, JAVA와 Linux C 언어로 구현된 예제를 공유하겠습니다.ElGamal 암호화 알고리즘이란?ElGamal 암호화는 1985년 Taher ElGamal이 제안한 공개 키 암호 시스템입니다. 이 알고리즘은 디피-헬만 키 교환 방식에 기초하며, 큰 소수를 기반으로 한 난수 생성과 지수 연산을 사용하여 보안성을 유지합니다. ElGamal은 암호화, 복호화, 서명 생성 및 검증에 모두 사용할 수 있으며, RSA에 ..

STM32 I2C 설정 및 센서 통신 예제

STM32 I2C 설정 및 센서 통신 예제안녕하세요, 소프트웨어 공장입니다. 오늘은 STM32F429ZI 보드에서 I2C를 설정하고 이를 활용하여 센서와 통신하는 방법에 대해 다뤄보겠습니다. I2C는 다양한 센서와 모듈을 연결하기에 매우 유용한 통신 방식입니다. 이번 글에서는 I2C의 기본 개념을 설명한 후, STM32CubeIDE를 사용하여 STM32F429ZI 보드의 IO를 설정하고, 실제 센서와 통신하는 예제를 작성해 보겠습니다.1. I2C란 무엇인가?I2C(Inter-Integrated Circuit)는 Philips에서 개발한 직렬 통신 프로토콜로, 여러 개의 슬레이브 장치를 하나의 마스터와 연결하여 사용할 수 있는 간단하고 유연한 통신 방식입니다. I2C는 두 개의 선(SCL: Serial C..

STM32 2024.11.24

Android - 런타임 권한(Permission) 요청과 처리 방법

Android - 런타임 권한(Permission) 요청과 처리 방법안드로이드 애플리케이션 개발에서는 사용자 데이터를 보호하기 위해서 권한 관리가 필수적입니다. Android 6.0 (API 23)부터는 권한이 설치 시점이 아닌, 애플리케이션 실행 중 런타임에서 요청되어야 합니다. 이번 포스팅에서는 안드로이드에서 런타임 권한을 요청하고 처리하는 방법에 대해 설명하고, 예제 코드를 통해 쉽게 이해할 수 있도록 도와드리겠습니다.런타임 권한 개요런타임 권한은 앱이 특정 작업을 수행하기 위해 사용자의 동의를 필요로 할 때, 앱 실행 중에 사용자에게 요청하는 권한입니다. 예를 들어, 카메라 사용, 위치 정보 접근, 연락처 읽기 등의 작업을 수행하려면 해당 권한을 사용자로부터 동적으로 허용받아야 합니다.권한을 요청..

Android/Application 2024.11.24

Diffie-Hellman (DH) 키 교환 비대칭키 알고리즘 이해하기

Diffie-Hellman (DH) 키 교환 비대칭키 알고리즘 이해하기오늘은 비대칭키 암호화 알고리즘 중 하나인 Diffie-Hellman (DH) 키 교환에 대해 이야기해 보겠습니다. Diffie-Hellman 키 교환 알고리즘은 안전한 방식으로 비밀키를 교환할 수 있도록 해 주는 알고리즘으로, 네트워크 상에서 중요한 정보를 주고받을 때 많이 사용됩니다. 이 글에서는 DH 알고리즘의 기본 개념부터, Java 언어와 Linux C 언어로 구현하는 예제를 함께 살펴보겠습니다.Diffie-Hellman 키 교환 알고리즘의 개념Diffie-Hellman 키 교환 알고리즘은 1976년 Whitfield Diffie와 Martin Hellman이 개발한 공개키 암호화 기법입니다. 이 알고리즘의 목적은 네트워크를 ..

STM32 UART 설정 및 사용 가이드

STM32 UART 설정 및 사용 가이드안녕하세요, 소프트웨어 공장에 오신 것을 환영합니다. 오늘은 STM32F429ZI 보드에서 UART를 설정하고 사용하는 방법에 대해 자세히 설명해드리겠습니다. UART(Universal Asynchronous Receiver/Transmitter)는 직렬 통신을 위한 매우 중요한 프로토콜입니다. UART를 통해 보드와 다른 장치 간의 데이터 통신을 쉽게 할 수 있기 때문에, 임베디드 시스템 개발에서 빠질 수 없는 기술 중 하나입니다.이번 포스팅에서는 다음과 같은 내용들을 다룰 예정입니다:UART의 개념 및 기본 작동 원리STM32F429ZI 보드에서 UART 설정하기 (STM32CubeIDE 사용)HAL 라이브러리를 이용한 UART 초기화와 데이터 전송전체 코드 예..

STM32 2024.11.23

Android - JSON 파싱 및 API 연동

Android - JSON 파싱 및 API 연동안녕하세요, '소프트웨어 공장'에 오신 것을 환영합니다! 오늘은 안드로이드 애플리케이션 개발 시 자주 사용되는 "JSON 파싱 및 API 연동"에 대해 알아보려고 합니다. 네트워크를 통해 데이터를 주고받는 것은 현대 앱 개발에서 빠질 수 없는 부분입니다. 이번 포스팅에서는 간단한 예제와 함께 JSON 데이터를 Kotlin을 통해 어떻게 파싱하고 API와 연동하는지 살펴보겠습니다.1. JSON 파싱 및 API 연동의 개념JSON(JavaScript Object Notation)은 서버와 클라이언트 간의 데이터 전송을 위해 널리 사용되는 포맷입니다. API(Application Programming Interface)를 통해 서버로부터 데이터를 가져올 때, 주로..

Android/Application 2024.11.23

ECC (Elliptic Curve Cryptography) 비대칭키 암호화 알고리즘

ECC (Elliptic Curve Cryptography) 비대칭키 암호화 알고리즘비대칭키 암호화 알고리즘 중 하나인 ECC (Elliptic Curve Cryptography)는 공개키 암호 방식으로, 데이터의 보안을 유지하면서도 기존의 RSA 등보다 더 작은 키 크기에서 높은 보안성을 제공합니다. ECC는 주로 모바일 기기나 IoT 장비처럼 자원이 제한된 환경에서 효율적인 암호화를 제공하는 것으로 잘 알려져 있습니다.오늘은 ECC의 개념부터 ECC를 JAVA 및 Linux C 언어로 구현하는 예제를 함께 살펴보겠습니다.ECC란 무엇인가?ECC는 타원 곡선의 수학적 성질을 이용하여 공개키 암호화를 구현하는 알고리즘입니다. 기본적으로 타원 곡선 방정식은 다음과 같은 형태로 나타납니다:y^2 = x^3 ..

STM32 Timer 활용 - PWM 생성 및 타이머 인터럽트 설정

STM32 Timer 활용 - PWM 생성 및 타이머 인터럽트 설정STM32F429ZI의 타이머는 다양한 기능을 제공하여 마이크로컨트롤러의 타이밍 제어나 PWM 생성 등 다양한 작업을 수행할 수 있게 도와줍니다. 이번 포스팅에서는 타이머의 종류와 기본 개념을 다루고, PWM 생성, 타이머 인터럽트 설정 및 사용 방법에 대해 알아보겠습니다. 특히 GPIO 설정을 포함하여 타이머 기능을 사용하는 방법을 자세히 설명하고, 예제 소스 코드도 제공할 것입니다.1. STM32 타이머의 종류 및 기본 개념STM32F429ZI에는 다양한 타이머가 포함되어 있습니다. 주요 타이머는 다음과 같습니다:Advanced Control Timer (타이머 1, 8): 고급 PWM 기능과 다양한 타이밍 제어를 제공합니다.Gener..

STM32 2024.11.22

Android REST API(Retrofit) 연동 - 네트워크 통신과 데이터 파싱

Android REST API(Retrofit) 연동 - 네트워크 통신과 데이터 파싱안녕하세요, 오늘은 안드로이드 애플리케이션에서 Retrofit 라이브러리를 사용하여 REST API와 통신하는 방법에 대해 알아보겠습니다. Retrofit은 Square에서 제공하는 HTTP 클라이언트 라이브러리로, 안드로이드에서 네트워크 작업을 손쉽게 처리할 수 있게 도와줍니다. Retrofit을 사용하면 서버와의 통신 및 JSON 형식의 데이터를 파싱하는 과정을 간단하게 구현할 수 있습니다. 이번 포스팅에서는 Retrofit을 사용하여 간단한 REST API 호출과 데이터 파싱을 다루는 방법을 예제를 통해 알아보겠습니다.1. Retrofit 라이브러리 설정1.1 Gradle 의존성 추가Retrofit을 사용하기 위해서..

Android/Application 2024.11.22

RSA 비대칭키 암호화 알고리즘

RSA 비대칭키 암호화 알고리즘비대칭키 암호화 알고리즘은 데이터를 안전하게 전달하기 위한 중요한 기술 중 하나입니다. 그 중에서도 가장 널리 알려진 알고리즘 중 하나가 바로 RSA (Rivest-Shamir-Adleman)입니다. 오늘은 RSA 알고리즘의 원리와 Java, Linux C 언어로 구현한 예제를 통해 RSA 암호화와 복호화를 알아보도록 하겠습니다.RSA 알고리즘 개요RSA 알고리즘은 공개키 암호화 방식의 대표적인 예입니다. RSA는 공개키와 비밀키 두 가지 키를 사용하여 데이터를 암호화하고 복호화합니다. 공개키는 누구나 알 수 있도록 공개되어 있으며, 비밀키는 수신자만 알고 있어야 합니다.RSA의 핵심 개념은 소인수분해의 어려움에 기반을 두고 있습니다. 두 개의 매우 큰 소수를 곱하여 만든 ..

반응형