반응형

전체 글 805

DSA(Digital Signature Algorithm) 비대칭키 암호화 알고리즘

DSA(Digital Signature Algorithm) 비대칭키 암호화 알고리즘비대칭키 암호화 알고리즘 중 하나인 DSA (Digital Signature Algorithm)은 디지털 서명을 생성하고 검증하는 목적으로 설계된 암호화 알고리즘입니다. 비대칭키 암호화는 두 개의 키, 즉 공개 키와 개인 키를 사용하여 데이터를 암호화하고 서명하는 방식입니다. DSA는 특히 디지털 서명을 위한 알고리즘으로, 미국 국가안보국(NSA)에 의해 개발되었으며, 디지털 서명을 통해 데이터의 무결성과 인증을 보장합니다.이번 포스팅에서는 DSA가 무엇인지 설명하고, JAVA 언어와 C 언어를 사용하여 간단한 예제 구현을 살펴보겠습니다.1. DSA의 개념과 특징DSA는 주로 다음과 같은 특성을 가지고 있습니다:서명 생성 ..

STM32 SPI 설정 및 활용 가이드

STM32 SPI 설정 및 활용 가이드STM32 MCU는 다양한 인터페이스를 통해 외부 장치와 통신할 수 있습니다. 그중 SPI(Serial Peripheral Interface)는 빠르고 간편한 통신을 제공하여 센서, 메모리 장치, 디스플레이 등 다양한 디바이스와의 데이터 교환에 널리 사용됩니다. 이번 글에서는 STM32CubeIDE를 이용하여 SPI 설정 방법을 상세히 설명하고, SPI를 통해 외부 디바이스와 통신하는 예제를 다뤄보겠습니다.SPI의 개념SPI는 직렬 통신 프로토콜로, 마스터와 슬레이브 간의 동기화된 데이터 전송을 위해 사용됩니다. SPI는 클럭 신호를 사용하여 데이터를 전송하는데, 주요한 핀은 다음과 같습니다:MOSI (Master Out Slave In): 마스터에서 슬레이브로 데이..

STM32 2024.11.25

Android - 카메라와 갤러리 사용하기

Android - 카메라와 갤러리 사용하기안드로이드 애플리케이션 개발을 하다 보면 카메라로 사진을 찍거나, 갤러리에서 사진을 선택해 앱에서 활용해야 하는 경우가 많이 있습니다. 이번 포스팅에서는 간단한 예제를 통해 카메라와 갤러리를 사용하는 방법을 알아보겠습니다. 카메라로 사진을 찍고, 갤러리에서 이미지를 가져오는 기능을 구현해 봅시다.1. AndroidManifest.xml 설정하기카메라와 갤러리 기능을 사용하려면 관련 권한을 선언해야 합니다. 다음과 같이 AndroidManifest.xml 파일에 권한을 추가해 주세요. ... 위와 같이 카메라와 외부 저장소 사용 권한을 선언하고, FileProvider ..

Android/Application 2024.11.25

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 ..

반응형