KR20190138637A - 프라이버시 보호 메시지 블라인딩 - Google Patents

프라이버시 보호 메시지 블라인딩 Download PDF

Info

Publication number
KR20190138637A
KR20190138637A KR1020197027914A KR20197027914A KR20190138637A KR 20190138637 A KR20190138637 A KR 20190138637A KR 1020197027914 A KR1020197027914 A KR 1020197027914A KR 20197027914 A KR20197027914 A KR 20197027914A KR 20190138637 A KR20190138637 A KR 20190138637A
Authority
KR
South Korea
Prior art keywords
header
terminal device
message frame
mask
network
Prior art date
Application number
KR1020197027914A
Other languages
English (en)
Other versions
KR102156812B1 (ko
Inventor
조셉 알폰소 냅
토마스 아이리히
마이클 피터 카이퍼-하몬드
알렉산드루 미르체아 카라카스
토르스텐 크램프
Original Assignee
젬테크 인터나치오날 아게
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 젬테크 인터나치오날 아게 filed Critical 젬테크 인터나치오날 아게
Publication of KR20190138637A publication Critical patent/KR20190138637A/ko
Application granted granted Critical
Publication of KR102156812B1 publication Critical patent/KR102156812B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0414Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden during transmission, i.e. party's identity is protected against eavesdropping, e.g. by using temporary identifiers, but is known to the other party or parties involved in the communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • H04W12/001
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/1006
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

메시지 프레임들을 전송하는 방법으로서, 프로세서를 포함하는 단말 장치에 의해, 제1 평문 헤더를 포함하는 제1 메시지 프레임 부분을 생성하는 단계; 장치 식별자(DevEUI) 및 헤더 블라인딩 키(HdrBKey)를 획득하는 단계; 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성하는 단계; 상기 제1 평문 헤더에 상기 제1 헤더 마스크를 적용함으로써 제1 블라인딩된 헤더를 획득하는 단계; 상기 제1 블라인딩된 헤더를 사용하여 상기 제1 메시지 부분을 업데이트함으로써 제1 업데이트된 메시지 프레임 부분을 획득하는 단계; 상기 제1 업데이트된 메시지 프레임 부분을 포함하는 제1 블라인딩된 메시지 프레임을 생성하는 단계; 및 네트워크 게이트웨이에 상기 제1 블라인딩된 메시지 프레임을 전송하는 단계를 포함하는, 방법.

Description

프라이버시 보호 메시지 블라인딩
관련 출원에 대한 상호 참조
본 출원은 2017년 2월 24일에 출원된 미국 가출원 제62/463,401호에 관한 것이다. 전술한 출원의 전체 내용은 본 PCT 출원의 개시 내용의 일부로서 참조로 포함된다.
발명의 기술분야
본 발명은 프라이버시 보호 메시지 블라인딩에 관한 것이다.
본 발명은 저전력 광대역 네트워크(low power wide area network; LPWAN)와 같은 기존의 무선 구조에서의 프라이버시 취약점을 해결하는 것을 목표로 한다. 따라서, 본 발명의 실시예들은 LoRaWAN 프로토콜 사양에 기초하여 전송된 메시지들을 암호화 및 해독화하는 수단 및 방법을 제공한다.
메시지 프레임들을 전송하는 방법은 프로세서를 포함하는 단말 장치(end device)에 의해, 제1 평문 헤더를 포함하는 제1 메시지 프레임 부분을 생성하는 단계를 포함한다. 상기 방법은 장치 식별자(DevEUI) 및 헤더 블라인딩 키(HdrBKey)를 획득하는 단계를 포함한다. 상기 방법은 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성하는 단계 및 상기 제1 평문 헤더에 상기 제1 헤더 마스크를 적용함으로써 제1 블라인딩된 헤더를 획득하는 단계를 포함한다. 상기 방법은 상기 제1 블라인딩된 헤더를 사용하여 상기 제1 메시지 부분을 업데이트함으로써 제1 업데이트된 메시지 프레임 부분을 획득하는 단계, 상기 제1 업데이트된 메시지 프레임 부분을 포함하는 제1 블라인딩된 메시지 프레임을 생성하는 단계 및 네트워크 게이트웨이에 상기 제1 블라인딩된 메시지 프레임을 전송하는 단계를 포함한다.
메시지 프레임들을 전송하는 방법은 네트워크 호스트에 의해 그리고 장치 집단(device population)의 각 단말 장치에 대해, 장치 식별자(DevEUI), 헤더 블라인딩 키(HdrBKey) 및 장치 주소(DevAddr)를 획득하는 단계를 포함한다. 상기 방법은 상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성함으로써 제1 헤더 마스크들의 세트를 획득하는 단계 및 상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevAddr를 포함하는 제1 후보 평문 헤더(CPH)를 생성하는 단계를 포함한다. 상기 방법은 상기 장치 집단의 각각의 단말 장치에 대해, 상기 제1 CPH에 상기 제1 헤더 마스크를 적용함으로써 제1 후보 블라인딩된 헤더(candidate blinded header; CBH)들의 세트를 획득하는 단계 및 네트워크 게이트웨이로부터, 제1 블라인딩된 헤더를 포함하는 제1 메시지 프레임을 획득하는 단계를 포함한다. 상기 방법은 상기 제1 블라인딩된 헤더를 상기 제1 CBH들의 세트의 각각의 제1 CBH와 비교하는 단계 및 상기 비교에 기초하여, 상기 제1 CBH들의 세트 중에서, 상기 제1 블라인딩된 헤더에 포함되는 제2 고정 비트 세트와 매칭하는 제1 고정 비트 세트를 포함하는 제1 고정-비트 매칭 CBH를 식별하는 단계를 포함한다. 상기 방법은 상기 제1 블라인딩된 헤더에 상기 제1 헤더 마스크들의 세트 중 하나의 제1 헤더 마스크를 적용함으로써 제1 평문 헤더를 획득하는 단계로서, 상기 하나의 제1 헤더 마스크는 상기 제1 고정-비트-매칭 CBH에 대응하는, 단계를 포함한다. 상기 방법은 상기 제1 평문 헤더를 사용하여 상기 제1 메시지 프레임을 업데이트함으로써 제1 언블라인딩된 메시지 프레임을 획득하는 단계 및 애플리케이션 시스템에 상기 제1 언블라인딩된 메시지 프레임을 전송하는 단계를 포함한다.
단말 장치는 : 통신 인터페이스; 및 상기 통신 인터페이스에 동작 가능하게 연결되고 블라인딩 필터(blinding filter)가 실행되는 프로세서를 포함하며, 상기 프로세서는 제1 평문 헤더를 포함하는 제1 메시지 프레임 부분을 생성하도록 구성된다. 상기 프로세서는 장치 식별자(DevEUI) 및 헤더 블라인딩 키(HdrBKey)를 획득하도록 구성된다. 상기 프로세서는 상기 블라인딩 필터를 사용하여, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성하도록 구성된다. 상기 프로세서는 상기 블라인딩 필터를 사용하여, 상기 제1 평문 헤더에 상기 제1 헤더 마스크를 적용함으로써 제1 블라인딩된 헤더를 획득하도록 구성되고, 그리고 상기 제1 업데이트된 메시지 프레임 부분을 포함하는 제1 블라인딩된 메시지 프레임을 생성하도록 구성된다. 상기 프로세서는 상기 통신 인터페이스를 사용하여, 네트워크 게이트웨이에 상기 제1 블라인딩된 메시지 프레임을 전송하도록 구성된다.
네트워크 호스트는 통신 인터페이스를 포함한다. 상기 네트워크 호스트는 또한 상기 통신 인터페이스에 동작 가능하게 연결되고 블라인딩 필터(blinding filter)가 실행되는 프로세서도 포함하며, 상기 프로세서는 장치 집단(device population)의 각각의 단말 장치에 대해, 장치 식별자(DevEUI), 헤더 블라인딩 키(HdrBKey) 및 장치 주소(DevAddr)를 획득하도록 구성된다. 상기 프로세서는 상기 블라인딩 필터를 사용하여, 상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성함으로써 제1 헤더 마스크들의 세트를 획득하도록 구성된다. 상기 프로세서는 상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevAddr를 포함하는 제1 후보 평문 헤더(CPH)를 생성하도록 구성된다. 상기 프로세서는 상기 블라인딩 필터를 사용하여, 상기 장치 집단의 각각의 단말 장치에 대해, 상기 제1 CPH에 상기 제1 헤더 마스크를 적용함으로써 제1 후보 블라인딩된 헤더(candidate blinded header; CBH)들의 세트를 획득하도록 구성된다. 상기 프로세서는 상기 통신 인터페이스를 사용하여 그리고 상기 네트워크 호스트에 동작 가능하게 연결된 네트워크 게이트웨이로부터, 제1 블라인딩된 헤더를 포함하는 제1 메시지 프레임을 획득하도록 구성된다. 상기 프로세서는 상기 제1 블라인딩된 헤더를 상기 제1 CBH들의 세트의 각각의 제1 CBH와 비교하도록 구성되며, 그리고 상기 비교에 기초하여, 상기 제1 CBH들의 세트 중에서, 상기 제1 블라인딩된 헤더에 포함되는 제2 고정 비트 세트와 매칭하는 제1 고정 비트 세트를 포함하는 제1 고정-비트 매칭 CBH를 식별하도록 구성된다. 상기 프로세서는 상기 제1 블라인딩된 헤더에 상기 제1 헤더 마스크들의 세트 중 하나의 제1 헤더 마스크를 적용함으로써 제1 평문 헤더를 획득하도록 구성되는데, 상기 하나의 제1 헤더 마스크는 상기 제1 고정-비트-매칭 CBH에 대응한다. 상기 프로세서는 상기 제1 평문 헤더를 사용하여 상기 제1 메시지 프레임을 업데이트함으로써 제1 언블라인딩된 메시지 프레임을 획득하도록 구성되고, 그리고 상기 통신 인터페이스를 사용하여, 애플리케이션 시스템에 상기 제1 언블라인딩된 메시지 프레임을 전송하도록 구성된다.
시스템은 네트워크 게이트웨이 및 단말 장치를 포함한다. 상기 단말 장치는 제1 통신 인터페이스 및 제1 블라인딩 필터(blinding filter)가 실행되는 제1 프로세서를 포함하며, 상기 단말 장치는 상기 네트워크 게이트웨이에 동작 가능하게 연결되며, 상기 제1 프로세서는 제1 평문 헤더를 포함하는 제1 메시지 프레임 부분을 생성하도록 구성된다. 또한, 상기 제1 프로세서는 장치 식별자(DevEUI) 및 헤더 블라인딩 키(HdrBKey)를 획득하도록 구성되고, 그리고 상기 제1 블라인딩 필터를 사용하여, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성하도록 구성된다. 상기 제1 프로세서는 또한 상기 제1 블라인딩 필터를 사용하여, 상기 제1 평문 헤더에 상기 제1 헤더 마스크를 적용함으로써 제1 블라인딩된 헤더를 획득하도록 구성되고, 그리고 상기 제1 블라인딩된 헤더를 사용하여 상기 제1 메시지 부분을 업데이트함으로써 제1 업데이트된 메시지 프레임 부분을 획득하도록 구성된다. 상기 제1 프로세서는 상기 제1 업데이트된 메시지 프레임 부분을 포함하는 제1 블라인딩된 메시지 프레임을 생성하며, 그리고 상기 제1 통신 인터페이스를 사용하여, 네트워크 게이트웨이에 상기 제1 블라인딩된 메시지 프레임을 전송한다.
비-일시적 컴퓨터 판독 가능한 매체(computer readable medium; CRM)는 컴퓨터 판독 가능한 프로그램 코드를 포함하며, 상기 컴퓨터 판독 가능한 프로그램 코드는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1 평문 헤더를 포함하는 제1 메시지 프레임 부분을 생성하게 하고, 그리고 장치 식별자(DevEUI) 및 헤더 블라인딩 키(HdrBKey)를 획득하게 한다. 상기 프로세서는 또한 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성하며, 그리고 상기 제1 평문 헤더에 상기 제1 헤더 마스크를 적용함으로써 제1 블라인딩된 헤더를 획득한다. 상기 프로세서는 또한 상기 제1 블라인딩된 헤더를 사용하여 상기 제1 메시지 부분을 업데이트함으로써 제1 업데이트된 메시지 프레임 부분을 획득하며, 상기 제1 업데이트된 메시지 프레임 부분을 포함하는 제1 블라인딩된 메시지 프레임을 생성하며, 그리고 네트워크 게이트웨이에 상기 제1 블라인딩된 메시지 프레임을 전송한다.
비-일시적 컴퓨터 판독 가능한 매체(computer readable medium; CRM)는 컴퓨터 판독 가능한 프로그램 코드를 포함하며, 상기 컴퓨터 판독 가능한 프로그램 코드는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 장치 집단(device population)의 각각의 단말 장치에 대해, 장치 식별자(DevEUI), 헤더 블라인딩 키(HdrBKey) 및 장치 주소(DevAddr)를 획득하게 한다. 상기 프로세서는 상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성함으로써 제1 헤더 마스크들의 세트를 획득하며, 그리고 상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevAddr를 포함하는 제1 후보 평문 헤더(CPH)를 생성한다. 상기 프로세서는 상기 장치 집단의 각각의 단말 장치에 대해, 상기 제1 CPH에 상기 제1 헤더 마스크를 적용함으로써 제1 후보 블라인딩된 헤더(candidate blinded header; CBH)들의 세트를 획득하도록 구성되고, 그리고 네트워크 게이트웨이로부터, 제1 블라인딩된 헤더를 포함하는 제1 메시지 프레임을 획득하도록 구성된다. 상기 프로세서는 상기 제1 블라인딩된 헤더를 상기 제1 CBH들의 세트의 각각의 제1 CBH와 비교하도록 구성되고, 그리고 상기 비교에 기초하여, 상기 제1 CBH들의 세트 중에서, 상기 제1 블라인딩된 헤더에 포함되는 제2 고정 비트 세트와 매칭하는 제1 고정 비트 세트를 포함하는 제1 고정-비트 매칭 CBH를 식별하도록 구성된다. 상기 프로세서는 상기 제1 블라인딩된 헤더에 상기 제1 헤더 마스크들의 세트 중 하나의 제1 헤더 마스크를 적용함으로써 제1 평문 헤더를 획득하도록 구성되며, 여기서 상기 하나의 제1 헤더 마스크는 상기 제1 고정-비트-매칭 CBH에 대응한다. 상기 프로세서는 상기 제1 평문 헤더를 사용하여 상기 제1 메시지 프레임을 업데이트함으로써 제1 언블라인딩된 메시지 프레임을 획득하도록 구성되며, 그리고 애플리케이션 시스템에 상기 제1 언블라인딩된 메시지 프레임을 전송하도록 구성된다.
도 1a는 본원에 개시된 하나 이상의 실시예들에 따른 시스템을 도시한다.
도 1b는 본원에 개시된 하나 이상의 실시예들에 따른 시스템을 도시한다.
도 2a는 본원에 개시된 하나 이상의 실시예들에 따른 단말 장치를 도시한다.
도 2b는 본원에 개시된 하나 이상의 실시예들에 따른 네트워크 게이트웨이를 도시한다.
도 2c는 본원에 개시된 하나 이상의 실시예들에 따른 네트워크 호스트를 도시한다.
도 3은 본원에 개시된 하나 이상의 실시예들에 따른 LoRaWAN 메시지 프레임을 도시한다.
도 4a는 본원에 개시된 하나 이상의 실시예들에 따른 LoRaWAN 보안 프로세스를 도시하는 다이어그램이다.
도 4b는 본원에 개시된 하나 이상의 실시예들에 따른 강화된 LoRaWAN 보안 프로세스를 도시하는 다이어그램이다.
도 5a 및 도 5b는 본원에 개시된 하나 이상의 실시예들에 따른 단말 장치를 활성화하기 위한 방법을 기술하는 흐름도를 도시한다.
도 6a 및 도 6b는 본원에 개시된 하나 이상의 실시예들에 따른 평문 헤더를 블라인딩하기 위한 방법을 기술하는 흐름도를 도시한다.
도 7a 및 도 7b는 본원에 개시된 하나 이상의 실시예들에 따른 블라인딩된 헤더를 언블라인딩하기 위한 방법을 기술하는 흐름도를 도시한다.
도 8은 본원에 개시된 하나 이상의 실시예들에 따른 단말 장치 작업들을 최적화하기 위한 방법을 기술하는 흐름도를 도시한다.
도 9는 본원에 개시된 하나 이상의 실시예들에 따른 네트워크 작업들을 최적화하기 위한 방법을 기술하는 흐름도를 도시한다.
도 10a 및 도 10b는 각각 본원에 개시된 하나 이상의 실시예들에 따른 컴퓨팅 시스템을 도시한다.
도 11은 본원에 개시된 하나 이상의 실시예들을 이용한 일반적인 네트워크 아키텍처의 상위 레벨 뷰를 도시한다.
도 12는 본원에 개시된 하나 이상의 실시예들을 이용한 메시지의 일부 컴포넌트들을 도시한다.
도 13은 본원에 개시된 하나 이상의 실시예들을 이용한 메시지 블라인딩 절차를 도시한다.
이제, 본원에 개시된 특정 실시예들은 첨부 도면을 참조하여 상세하게 설명될 것이다. 본원에 개시된 실시예들의 다음의 상세한 설명에서, 본원에 개시된 실시예들에 대한 보다 철저한 이해를 제공하기 위해 다수의 특정 세부사항들이 설명된다. 그러나, 본원에 개시된 실시예들은 이러한 특정 세부사항 없이도 실시될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우에, 설명을 불필요하게 복잡하게 하는 것을 피하기 위해, 잘 알려진 특징들은 상세히 설명되지 않았다.
도 1a 내지 도 10b에 대한 다음의 설명에서, 도면과 관련하여 설명된 임의의 컴포넌트는, 본원에 개시된 다양한 실시예들에서, 임의의 다른 도면과 관련하여 설명된 하나 이상의 유사한 명칭의 컴포넌트들과 동등할 수 있다. 간결성을 위해, 이러한 컴포넌트들에 대한 설명은 각 도면과 관련하여 반복되지 않을 것이다. 따라서, 각 도면의 컴포넌트들의 각각 및 모든 실시예는 참조로 포함되며, 하나 이상의 유사한 명칭의 컴포넌트들을 갖는 모든 다른 도면 내에 옵션으로 존재하는 것으로 가정된다. 부가적으로, 본원에 개시된 다양한 실시예들에 따르면, 도면의 컴포넌트들에 대한 임의의 설명은 임의의 다른 도면에서 대응하는 유사한 명칭의 컴포넌트와 관련하여 설명된 실시예들에 추가하여, 이와 관련하여 또는 대신하여 구현될 수 있는 선택적 실시예로 해석되어야 한다.
본 출원 전체에서, 서수(예를 들어, 제1, 제2, 제3 등)는 요소(즉, 본 출원의 임의의 명사)에 대한 형용사로서 사용될 수 있다. 서수를 사용하는 것은, "이전", "이후", "단일의" 및 다른 그러한 용어들을 사용하는 것과 같이 명시적으로 개시되지 않는 한, 요소들의 특정 순서를 의미하거나 생성하는 것이 아니며, 임의의 요소를 단일 요소로만 제한하는 것도 아니다. 오히려, 서수를 사용하는 것은 요소들을 구별하기 위한 것이다. 예를 들어, 제1 요소는 제2 요소와 구별되며, 제1 요소는 하나 이상의 요소를 포함할 수 있고 그리고 요소들의 순서대로 제2 요소를 후행(또는 선행)할 수 있다.
일반적으로, 본원에 개시된 실시예들은 프라이버시 보호에 관한 것이다. 구체적으로, 본 개시서의 하나 이상의 실시예들은 일반적으로 도청 및/또는 인터셉션(interception)에 취약한 무선 전송과 관련된 헤더 정보의 블라인딩을 수반한다. 더 구체적으로, 헤더 정보의 블라인딩(또는 암호화)뿐만 아니라 최종 언블라인딩(또는 해독화)은 단말 장치, 그리고 단말 장치를 관리하는 네트워크 호스트에게만 알려진 장치 고유 헤더 블라인딩 키(header blinding key; HdrBKey)를 사용하여 수행된다. 본원에 개시된 하나 이상의 다른 실시예들에서, 단말 장치(즉, 네트워크-가능 물리 객체(network-enabled physical object))는 단말 장치 작업들을 최적화하기 위해 자신의 파라미터들을 모니터링하고 조정하는 기능을 포함할 수 있다. 이와 유사하게, 네트워크 호스트는 네트워크 작업들을 최적화하기 위해 네트워크-와이드 파라미터들을 모니터링하고 조정하는 기능을 포함할 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 메시지 블라인딩을 통한 프라이버시의 보존은 LoRaWAN 프로토콜을 적어도 부분적으로 이용한다. LoRaWAN 프로토콜의 한 버전은 2016년 7월자 "LoRa Alliance LoRaWAN Specification" version 1.0.2 문서에 정의되어 있다. LoRaWAN 프로토콜은 그 전체가 본원에 참고로 편입된다. 또한, 본원에 개시된 실시예들은 특정 버전의 LoRaWAN 프로토콜에 제한되지 않는다. 본 명세서에 논의된 예시적인 실시예에 기초하여 당업자에게 명백한 바와 같이, 메시지 블라인딩의 사용은 LoRaWan 프로토콜로 제한될 필요는 없으며, 다른 프로토콜들은 본원에 논의된 개념들, 방법들, 시스템들 및 장치들의 통합으로부터 이익을 얻을 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 메시지 블라인딩을 통한 프라이버시 보존은 적어도 부분적으로 IEEE(Institute of Electrical and Electronics Engineers) 802.15.4 표준을 이용하며, 이는 저속 무선 개인 영역 네트워크(low-rate wireless personal area network; LR-WPAN)의 동작을 정의한다. 하나의 버전의 IEEE 802.15.4 표준은 2011년 9월자 "IEEE Standard for Local and metropolitan area networks - Part 15.4: Low- Rate Wireless Personal Area Networks (LR-WPANs)"버전 IEEE Std 802.15.4-2011 문서에 정의되어 있다. IEEE 802.15.4 표준은 그 전체가 본원에 참조로 포함된다. 또한, 본원에 개시된 실시예들은 특정 버전의 IEEE 802.15.4 표준에 한정되지 않는다.
도 1a는 본원에 개시된 하나 이상의 실시예들에 따른 시스템을 도시한다. 시스템(100a)은 단말 장치(end device)(102), 네트워크 게이트웨이(104a), 네트워크 호스트(106) 및 애플리케이션 시스템(108)을 포함한다. 이러한 컴포넌트들 각각은 이하에 설명된다.
본원에 개시된 하나 이상의 실시예들에서, 단말 장치(102)는 적어도 하나의 센서를 포함하는 임의의 네트워크-가능 물리 객체(소프트웨어 및/또는 펌웨어 포함)일 수 있다. "네트워크-가능(network-enabled)"이란 용어는 본원에 개시된 하나 이상의 실시예들에서, 근거리 통신망(LAN) 또는 광역 통신망(WAN)과 같은 네트워크를 통해 정보를 수집 및 교환하는 기능을 포함하는 것을 지칭할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 단말 장치(102)는 사물 인터넷(IoT)-가능 물리 객체일 수 있다. 단말 장치(102)의 예들은 모트(mote), 가전, 차량, 웨어러블 또는 이식 가능 장치 및 도시 또는 농촌 구조물을 포함할 수 있지만, 이에 제한되지는 않는다.
본원에 개시된 하나 이상의 실시예들에서, 최종 장치(102)는 하나 이상의 온보드(또는 동작 가능하게(operatively) 연결된) 센서(들)를 사용하여 센서 정보를 수집하는 기능을 포함할 수 있다. 단말 장치(102)는 전술한 센서 정보를 네트워크 게이트웨이(104A)에 전송하는 추가 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 단말 장치(102) 및 네트워크 게이트웨이(104A)는 양방향 저전력 및 장거리(LoRa®) 무선 통신 링크를 통해 동작 가능하게 연결될 수 있다. 본원에 개시된 하나 이상의 실시예들에서, LoRa® 무선 통신 링크는 장거리, 저전력 및 낮은 데이터 전송률 애플리케이션에 사용되는 무선 변조(wireless modulation)를 사용할 수 있다. (LoRa는 Semtech Corporation의 등록 상표이다) 본원에 개시된 하나 이상의 실시예들에서, 단말 장치(102) 및 네트워크 게이트웨이(104A)는 예를 들어 Wifi, 블루투스, 지그비, Z-웨이브 및 셀룰러 연결들(예를 들어, 2G/3G/4G)과 같은 임의의 다른 기존의 또는 미래에 개발되는 무선 통신 링크를 통해 동작 가능하게 연결될 수 있다. 이하의 실시예들은 일반적으로 단말 장치(102)와 네트워크 게이트웨이(104A) 간의 양방향 통신을 기술하지만, 본 명세서에 설명된 개념들, 방법들, 장치들 및 시스템들을 고려하여 당업자는 예를 들어 단말 장치(102)와 네트워크 게이트웨이(104A) 사이의 단방향 통신이 본원에서 논의되는 프라이버시 블라인딩(privacy blinding)으로부터 이익을 얻을 것이라는 것을 이해할 것이다.
본원에 개시된 하나 이상의 실시예들에서, 단말 장치(102)는 가입 요청 메시지들을 생성 및 전송하고, 이후 가입 승인 메시지들을 수신하는 추가 기능을 포함할 수 있다(도 5 참고). 또한, 단말 장치(102)는 구성 업데이트 메시지들을 수신하고(예를 들어, 도 9 참고) 그리고/또는 소프트웨어 및 펌웨어 업데이트도 수신하는 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 단말 장치(102)는 동작 관리를 개선하기 위해 자체적으로 모니터링, 분석 및 최적화하는 추가 기능을 포함할 수 있다(예를 들어, 도 8 참고). 본원에 개시된 하나 이상의 실시예들에서, 단말 장치(102)는 블라인딩 및 언블라인딩 작업들을 수행하는 기능을 포함할 수 있다(예를 들어, 도 6a 내지 도 7b 참고). 단말 장치(102)는 도 2a에 관하여 이하에서 더 상세히 설명된다.
본원에 개시된 하나 이상의 실시예들에서, 네트워크 게이트웨이(104A)는 임의의 인터네트워킹 물리적 장치(소프트웨어 및/또는 펌웨어 포함)일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, "인터네트워킹(internetworking)"이란 용어는 서로 다른 기본 프로토콜들을 사용하는 둘 이상의 네트워크들을 결합(join)하는 기능을 포함하는 것을 의미할 수 있다. 따라서, 본원에 개시된 일 실시예에서, 네트워크 게이트웨이(104A)는 LoRaWAN 프로토콜과 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP)을 통합하고 그리고/또는 이들을 중재하는 기능을 포함할 수 있다. TCP/IP는 네트워크 호스트(106) 및 애플리케이션 시스템(108)이 상주하는 백홀 네트워크에 의해 사용될 수 있다. 본원에 개시된 다른 실시예에서, 네트워크 게이트웨이(104A)는 임의의 다른 기존의 또는 미래에 개발되는 무선 프로토콜 및 TCP/IP(또는 임의의 다른 기존의 또는 미래에 개발되는 네트워킹 프로토콜)을 통합하고 그리고/또는 이들을 중재하는 기능을 포함할 수 있다. 네트워크 게이트웨이(104A)의 예들은 네트워크 브리지, 프로토콜 변환기, 라우터, 네트워크 스위치, 멀티레이어 스위치, 무선 액세스 포인트, 네트워크 허브 및 네트워크 리피터를 포함하지만 이에 제한되지는 않는다.
본원에 개시된 하나 이상의 실시예들에서, 전술한 백홀 네트워크는 네트워크 게이트웨이(104A), 네트워크 호스트(106) 및 애플리케이션 시스템(108)이 동작 가능하게(또는 통신 가능하게) 연결되는 매체일 수 있다. 시스템(100A)의 이러한 다양한 컴포넌트들 간의 연결들은 유선 및/또는 무선, 직접적 또는 간접적, 임시적, 영구적 및/또는 간헐적일 수 있다. 또한, 백홀 네트워크는 근거리 통신망(LAN) 또는 인터넷과 같은 광역 통신망(WAN)을 사용하여 구현될 수 있다. 또한, 백홀 네트워크는 적어도 시스템(100A)의 다양한 컴포넌트들 사이에서의 정보 교환을 용이하게 하는 기능을 포함하는 임의의 기존의 또는 미래에 개발되는 유선 및/또는 무선 통신 프로토콜들을 사용할 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 네트워크 게이트웨이(104A)는 단말 장치(102) 및/또는 네트워크 호스트(106)로/로부터 정보를 획득하고 중계하기위한 추가 기능을 포함할 수 있다. 구체적으로, 본원에 개시된 하나 이상의 실시예들에서, 네트워크 게이트웨이(104A)는 단말 장치(102)로부터 LoRaWAN 메시지 프레임들을 수신하는 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 수신된 LoRaWAN 메시지 프레임들은 블라인딩된 헤더들(이하에서 논의됨)을 포함할 수 있다. 이어서, 네트워크 게이트웨이(104A)는 수신된 LoRaWAN 메시지 프레임들을 TCP/IP에 의해 이용되는 MAC(Media Access Control) 프레임들로 캡슐화하고, 그리고 생성된 MAC 프레임들을 네트워크 호스트(106)로 전송하는 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 네트워크 게이트웨이(104A)는 또한 네트워크 호스트(106)로부터 MAC 프레임들을 수신하는 기능을 포함할 수 있다. 네트워크 게이트웨이(104A)는 수신된 MAC 프레임들을 디캡슐화하여 내부에 존재하는 페이로드들(즉, 네트워크 호스트(106)가 단말 장치(102)에 전송하려고 시도할 수 있는 콘텐츠)을 획득하기 위한 기능을 후속적으로 포함할 수 있다. 그 다음, 네트워크 게이트웨이(104A)는 획득된 페이로드들을 LoRaWAN 프로토콜에 의해 이용되는 LoRaWAN 메시지 프레임들로 캡슐화하고, 생성된 LoRaWAN 메시지 프레임들을 단말 장치(102)에 전송하는 기능을 포함할 수 있다. 당업자는 네트워크 게이트웨이(104A)가 본원에 개시된 실시예들의 범위를 벗어나지 않고 다른 기능들을 포함할 수 있다는 것을 이해할 것이다. 네트워크 게이트웨이(104A)는 도 2b와 관련하여 아래에서 더 상세히 논의된다.
본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트(106)는 MAC 프레임들을 생성, 전송, 수신 및/또는 처리하도록 구성될 수 있는 임의의 컴퓨팅 시스템(소프트웨어 및/또는 펌웨어 포함)일 수 있다. 본원에 개시된 일 실시예에서, 네트워크 호스트(106)는 하나 이상의 물리적 서버(들) 상에서(예를 들어, 데이터 센터에서) 구현될 수 있다. 본원에 개시된 다른 실시예에서, 네트워크 호스트(106)는 클라우드 기반일 수 있는 하나 이상의 가상 서버(들) 상에서 구현될 수 있다. 본원에 개시된 또 다른 실시예에서, 네트워크 호스트(106)는 하나 이상의 물리적 및/또는 가상 서버들의 조합에서 구현될 수 있다. 본원에 개시된 또 다른 실시예에서, 네트워크 호스트(106)는 도 10a 및 도 10b에 도시된 예시적인 컴퓨팅 시스템들과 유사한 임의의 하나 이상의 컴퓨팅 시스템(들)에서 구현될 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트(106)는 시스템(100A)을 관리하는 기능을 포함할 수 있다. 구체적으로, 시스템(100A)을 관리하기 위해, 네트워크 호스트(106)는 중복 패킷들(예를 들어, MAC 프레임들 및 LoRaWAN 메시지 프레임들)을 제거하고, 확인응답(acknowledgements)을 스케줄링하고, 그리고 데이터 속도를 적응시키는 기능을 포함할 수 있다. 데이터 속도를 적응시키는 것에 더하여, 본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트(106)는 적응형 데이터 속도(adaptive data rate; ADR) 방식을 사용함으로써 각각의 단말 장치(102)에 대한 데이터 속도 및 무선 주파수(RF) 출력을 개별적으로 관리하는 추가 기능을 포함할 수 있다. 네트워크 호스트(106)는 (최적화된 트래픽 라우팅을 위해) 패킷 라우팅, 지능형 동적 네트워크 게이트웨이 선택 및 장치 인증을 구현하는 추가 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트(106)는 구성 업데이트 메시지들을 생성 및 전송하는 기능을 포함할 수 있다(예를 들어, 도 9 참고). 본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트(106)는 프로비저닝, 관리 및 보고 서비스들을 애플리케이션 시스템(108)에 제공하는 기능을 포함할 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트(106)는 네트워크 게이트웨이(104a)로부터 MAC 프레임들을 수신하는 기능을 포함할 수 있다. 전술한 바와 같이, 수신된 MAC 프레임들은 단말 장치(102)로부터 발생하는 LoRaWAN 메시지 프레임들을 캡슐화할 수 있다. 본원에 개시된 일 실시예에서, 수신된 LoRaWAN 메시지 프레임들은 블라인딩된 헤더들을 포함할 수 있다(예를 들어 도 4b 참고). 이러한 실시예에서, 수신된 LoRaWAN 메시지 프레임들은 예를 들어 발신하는 단말 장치(102)에 의해 수집되는 그리고/또는 측정되는 센서 정보를 더 포함할 수 있다. 본원에 개시된 다른 실시예에서, 수신된 LoRaWAN 메시지 프레임들은 가입 요청 메시지들일 수 있다(예를 들어, 도 5 참고). 네트워크 호스트(106)는 수신된 MAC 프레임들을 디캡슐화함으로써 LoRaWAN 메시지 프레임들을 획득하는 추가 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트(106)는, 단말 장치(102)와 유사하게, 블라인딩 및 언블라인딩 작업들을 수행하는 기능을 포함할 수 있다(예를 들어, 도 6a 내지 도 7b 참고). 또한, 네트워크 호스트(106)는 (언블라인딩된 헤더들을 포함하는) LoRaWAN 메시지 프레임들을 MAC 프레임들로 캡슐화하고, 이어서, 생성된 MAC 프레임들을 애플리케이션 시스템(108)에 전송하는 기능을 포함할 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트(106)는 하나 이상의 단말 장치(들)(102)에 대한 장치 주소(DevAddr)를 동적으로 할당하기위한 추가 기능을 포함할 수 있다. 할당은 단말 장치(들)(102)로부터 가입 요청 메시지들을 수신하는 것에 응답하여 수행될 수 있다(예를 들어, 도 5 참고). 본원에 개시된 하나 이상의 실시예들에서, DevAddr는 네트워크/시스템(100A)에서 단말 장치에 대한 장치 주소를 지정하는 고유한 32-비트 16 진수일 수 있다. 가입 요청 메시지들을 수신하는 것에 응답하여, 네트워크 호스트(106)는 가입 승인 메시지들을 생성하여 단말 장치(102)에 전송하는 추가 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 가입 승인 메시지는 단말 장치(102)를 활성화시키는데 필요한 관련 정보(예를 들어, 동적 장치 주소, 세션 키들 및 헤더 블라인딩 키(아래에서 논의됨))를 포함할 수 있고, 따라서 단말 장치(102)가 시스템(100A)의 다양한 다른 컴포넌트들과 안전하게 통신할 수 있게 할 수 있다.
또한, 본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트(106)는 애플리케이션 시스템(108)으로부터 MAC 프레임들을 수신하는 기능을 포함할 수 있다. 본원에 개시된 일 실시예에서, 이러한 수신된 MAC 프레임들은 단말 장치(102)의 동작들 또는 소프트웨어 및/또는 펌웨어 업데이트를 제어하기위한 명령들을 포함할 수 있다. 네트워크 호스트(106)는 네트워크 게이트웨이(104A)를 통해 이러한 수신된 MAC 프레임들을 단말 장치(102)에게 포워딩하는 기능을 후속적으로 포함할 수 있다. 또한, 네트워크 호스트(106)는 네트워크 동작 파라미터들을 모니터링하고 네트워크 구성 파라미터들을 조정함으로써 네트워크 작업들을 평가 및 최적화하는 기능을 포함할 수 있다(예를 들어, 도 9 참고). 네트워크 작업을 최적화함에 있어서, 네트워크 호스트(106)는 또한 구성 업데이트 메시지들의 생성 및 전송을 통해 단말 장치 동작들에 영향을 주는 기능을 포함할 수 있다. 당업자는 이제 네트워크 호스트(106)가 본원에 개시된 실시예들의 범위를 벗어나지 않고 다른 기능들을 포함할 수 있다는 것을 이해할 것이다. 네트워크 호스트(108)는 도 2c에 관해 이하에서 더 자세히 논의된다.
본원에 개시된 하나 이상의 실시예들에서, 애플리케이션 시스템(108)은 최종 장치(102)로부터 센서 정보를 획득하고 그리고 후속적으로 최종 장치(102)의 동작을 제어하도록 구성될 수 있는 임의의 컴퓨팅 시스템(예를 들어, 도 10a 및 10b 참고)일 수 있다. 본원에 개시된 일 실시예에서, 애플리케이션 시스템(108)은 하나 이상의 물리적 머신(들)을 사용하여(예를 들어, 데이터 센터에서) 구현될 수 있다. 본원에 개시된 다른 실시예에서, 애플리케이션 시스템(108)은 클라우드 기반일 수 있는 하나 이상의 가상 머신(들)을 이용하여 구현될 수 있다. 본원에 개시된 또 다른 실시예에서, 애플리케이션 시스템(108)은 하나 이상의 물리적 및 가상 머신(들)의 조합을 사용하여 구현될 수 있다. 애플리케이션 시스템(108)의 예들은 데스크탑 컴퓨터들, 랩탑 컴퓨터들, 태블릿 컴퓨터들, 서버들, 스마트폰들, 게임 콘솔들 및 워크스테이션들을 포함하지만, 이에 한정되지는 않는다.
본원에 개시된 하나 이상의 실시예들에서, 애플리케이션 시스템(108)은 네트워크 호스트(106)로부터 MAC 프레임들을 수신하는 기능을 포함할 수 있다. 수신된 MAC 프레임들은 예를 들어 최종 장치(102)로부터 발생하는 센서 정보를 포함할 수 있다. 애플리케이션 시스템(108)은 단말 장치(102)로부터 수신된 정보에 대한 분석을 수행하는 추가 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 애플리케이션 시스템(108)은 또한 명령들, 커맨드들 및/또는 소프트웨어/펌웨어 업데이트들을 생성하는 기능을 포함할 수 있으며, 이는 후속하여 하나 이상의 단말 장치(들)(102)를 향해 전송될 수 있다. 당업자는 애플리케이션 시스템(108)이 본원에 개시된 실시예들의 범위를 벗어나지 않으면서 부가적인 또는 대안적인 기능들을 포함할 수 있다는 것을 이해할 것이다.
도 1a는 컴포넌트들의 구성을 도시하지만, 본원에 개시된 실시예들의 범위를 벗어나지 않고 도 1a에 도시된 것 이외의 시스템 구성들이 사용될 수 있다. 예를 들어, 도 1a에 옵션으로 도시된 바와 같이, 시스템(100A)은 네트워크 게이트웨이(104A)와 네트워크 호스트(106) 사이에 존재하는 네트워크 리피터로서 기능할 수 있는 추가 네트워크 게이트웨이(104B)를 포함할 수 있다. 다른 예로서, 도 1b에 도시된 바와 같이, 시스템(100B)은 다수의 단말 장치들(102A-102C, 102J-102L, 102S-102U)을 포함할 수 있으며, 각 세트는 지정된 네트워크 게이트웨이(104D-104F)에 동작 가능하게 연결된다. 그 다음, 다수의 네트워크 게이트웨이(104D-104F)는 네트워크 호스트 (106)에 동작 가능하게 연결될 수 있으며, 그 다음, 네트워크 호스트(106)는 다수의 애플리케이션 시스템(108X-108Z)에 동작 가능하게 연결될 수 있다.
도 2a는 본원에 개시된 하나 이상의 실시예들에 따른 단말 장치를 도시한다. 단말 장치(200)는 전원(202), 하나 이상의 센서들(204), 0 이상의 액추에이터들(206), 하나 이상의 프로세서들(208) 및 통신 인터페이스(214)를 포함한다. 이러한 컴포넌트들 각각은 아래에서 설명된다.
본원에 개시된 하나 이상의 실시예들에서, 전원(202)은 임의의 전기 공급 장치일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 전원(202)은 임의의 전기 저장 장치일 수 있다. 본원에 개시된 일 실시예에서, 전원(202)은 직류(DC) 전력을 저장 및 제공할 수 있다. 본원에 개시된 다른 실시예에서, 전원(202)은 교류(AC) 전력을 저장 및 제공할 수 있다. 본원에 개시된 또 다른 실시예에서, 전원(202)은 DC 및 AC 전력의 조합을 저장 및 제공할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 전원(202)은 단말 장치(200)의 다양한 다른 컴포넌트들(예를 들어, 센서(들)(204), 존재한다면 액추에이터(들)(206), 프로세서(들)(208), 그리고 통신 인터페이스(214))에게 전력을 제공하는 기능을 포함할 수 있다. 전원(202)은 예를 들어 배터리와 같은 재충전 가능한 추가 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 전원(202)은 전원(202)으로/로부터의 전력의 충전 및 방전을 감독할 수 있는 통합 관리 시스템을 포함할 수 있다. 이러한 실시예들에서, 관리 시스템은 또한 전원(202)의 동작 및 규정(regulation)과 관련된 측정치들을 모니터링할 수 있다. 모니터링된 측정치들 또는 특성들은 온도, 압력, 누설, 커패시턴스, 저항, 인덕턴스 및 에너지 소비율을 포함할 수 있지만 이에 제한되지는 않는다. 본원에 개시된 하나 이상의 실시예들에서, 전원(202)은 재충전을 위해 전원(202)이 전력을 끌어올 수 있는 외부 전원(도시되지 않음)에 동작 가능하게 연결될 수 있다. 당업자는 이제 전원(202)이 본원에 개시된 실시예들의 범위를 벗어나지 않으면서 전술한 기능들 및 다른 기능들을 가능하게 하는 추가 회로 또는 장치들(예를 들어, 전압 조정기들, 변환기들, 변압기들 등)을 포함할 수 있다는 것을 이해할 것이다.
본원에 개시된 하나 이상의 실시예들에서, 센서(204)는 소프트웨어를 포함하는 물리적 장치일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 센서(204)는 펌웨어를 포함하는 물리적 장치일 수 있다. 전술한 예들 중 어느 하나에서, 소프트웨어 또는 펌웨어는 측정 가능한 물리적 특성(즉, 물리적 시스템의 상태를 기술할 수 있는 특성)을 전기 신호들 또는 데이터로 변환하기 위해 제공된다. 물리적 특성의 예들은 전하, 흐름율, 주파수, 세기, 위치, 운동량, 압력, 강도, 온도, 속도 및 부피를 포함할 수 있지만, 이에 제한되지는 않는다. 당업자는 센서가 본원에 개시된 실시예들의 범위를 벗어나지 않으면서 단말 장치(200)가 관련되는 애플리케이션, 환경 또는 둘 모두에 따라 다른 물리적 특성들을 검출하고 측정할 수 있음을 이해할 것이다. 센서(204)의 예들은 가속도계, GPS(global positioning system) 장치, 압력 센서, 온도 센서, 마이크로폰, 카메라, 뇌파계(EEG)(즉, 생체 전기 센서) 및 광이온화 검출기(PID)(예를 들어, 가스 또는 유기 화합물 센서)를 포함할 수 있지만, 이에 제한되지는 않는다. 본원에 개시된 하나 이상의 실시예들에서, 하나 이상의 센서(들)(204)는 전원(202) 및 하나 이상의 프로세서(들)(208)에 동작 가능하게 연결될 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 액추에이터(206)는 소프트웨어를 포함하는 물리적 장치일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 액추에이터(206)는 펌웨어를 포함하는 물리적 장치일 수 있다. 전술한 경우들 중 하나에서, 소프트웨어 또는 펌웨어는 전기 신호들 또는 데이터를 자극(stimuli)으로 변환하는 것을 가능하게 하기 위해 센서에 제공된다. 본원에 개시된 하나 이상의 실시예들에서, 자극의 성질은 운동, 감각, 열, 화학, 청각, 시각, 임의의 다른 유형의 자극, 또는 이들의 조합일 수 있다. 액추에이터(206)의 예들은 모터, 유체 펌프, 압전 소자, 스피커 및 디스플레이를 포함할 수 있지만, 이에 제한되지는 않는다. 당업자는 액추에이터가 본원에 개시된 실시예들의 범위를 벗어나지 않으면서 단말 장치(200)와 관련되는 애플리케이션, 환경 또는 둘 모두에 따라 다른 자극을 생성할 수 있음을 이해할 것이다. 또한, 본원에 개시된 하나 이상의 실시예들에서, 0 이상의 액추에이터들(206)은 전원(202) 및 하나 이상의 프로세서(들)(208)에 동작 가능하게 연결될 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 프로세서(208)는 명령들을 실행하기 위해 소프트웨어를 포함하는 집적 회로들의 집합일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 프로세서(208)는 명령들을 실행하기 위해 펌웨어를 포함하는 집적 회로들의 집합일 수 있다. 전술한 명령들은 하나 이상의 프로세서(들)(208)에 의해 실행될 때, 하나 이상의 프로세서(들)(208)가 도 5 내지 도 8에 도시된 바와 같이 본원에 개시된 실시예들을 수행할 수 있게 하는 컴퓨터 판독 가능 프로그램 코드에 대응할 수 있다. 당업자는 이제 컴퓨터 판독 가능 프로그램 코드가 하나 이상의 프로세서들(208)이 본원에 개시된 실시예들의 범위를 벗어나지 않고 추가 동작들을 수행할 수 있게 할 수 있다는 것을 이해할 것이다. 프로세서(208)의 예들은 이산 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 마이크로 컨트롤러, 그래픽 처리 장치(GPU), 필드 프로그래머블 게이트 어레이(FPGA), 단일 보드 컴퓨터 및 이들의 임의의 조합을 포함할 수 있지만, 이에 제한되지는 않는다.
본원에 개시된 하나 이상의 실시예들에서, 블라인딩 필터(210)는 단말 장치(200)의 하나 이상의 프로세서(들)(208) 상에서 실행될 수 있다. 본원에 개시된 일 실시예에서, 블라인딩 필터(210)는 컴퓨터 프로그램의 적어도 일부 또는 컴퓨터 판독 가능 프로그램 코드의 세트일 수 있다. 하나 이상의 프로세서(들)(208)에 의해 실행될 때, 블라인딩 필터(210)는 하나 이상의 프로세서(들)(208)가 본원에 개시된 실시예들에 따라 블라인딩 또는 언블라인딩 작업들을 수행하게 할 수 있다(예를 들어, 도 6a 내지 도 7b 참고).
본원에 개시된 하나 이상의 실시예들에서, 결정 로직(212)은 단말 장치(200)의 하나 이상의 프로세서(들)(208) 상에서 실행될 수 있다. 본원에 개시된 일 실시예에서, 결정 로직(212)은 컴퓨터 프로그램의 적어도 일부 또는 컴퓨터 판독 가능 프로그램 코드의 세트일 수 있다. 하나 이상의 프로세서(들)(208)에 의해 실행될 때, 결정 로직(212)은 하나 이상의 프로세서(들)(208)에게 본원에 개시된 실시예들에 따라 단말 장치 작업들을 모니터링하고 최적화하는 기능을 제공할 수 있다(예를 들어, 도 8 참고).
본원에 개시된 하나 이상의 실시예들에서, 통신 인터페이스(214)는 LoRaWAN 메시지 프레임들을 수신 및 전송하기 위해 소프트웨어를 포함하는 물리적 장치일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 통신 인터페이스(214)는 LoRaWAN 메시지 프레임들을 수신 및 전송하기 위해 펌웨어를 포함하는 물리적 장치일 수 있다. 통신 인터페이스(214)는 단말 장치(200)를 하나 이상의 네트워크 게이트웨이(들)에 통신 가능하게 연결할 수 있다(예를 들어, 도 1a 참고). 본원에 개시된 적어도 하나의 실시예에서, 통신 인터페이스(214)는 정보를 수신 및 전송하기 위해 LoRA 무선 변조를 사용할 수 있다. 본원에 개시된 적어도 하나의 실시예에서, 통신 인터페이스(214)는 정보를 수신 및 전송하기 위해 LoRaWAN 프로토콜을 사용할 수 있다. 본원에 개시된 다른 실시예에서, 통신 인터페이스(214)는 정보를 수신 및 전송하기 위해 임의의 다른 기존의 또는 미래에 개발되는 변조, 프로토콜 또는 이들의 조합을 사용할 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 통신 인터페이스(214)는 (네트워크 호스트로부터 발생하는) 가입 승인 메시지들을 수신하는 기능을 포함할 수 있다(예를 들어, 도 5 참고). 통신 인터페이스(214)는 (네트워크 호스트로부터 발생하는) 구성 업데이트 메시지들(예를 들어, 도 9 참고) 및 소프트웨어/펌웨어 업데이트들을 수신하는 추가 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 통신 인터페이스(214)는 네트워크 게이트웨이를 통해 네트워크 호스트에 (하나 이상의 센서(들)(204)로부터 획득된) 센서 정보를 전송하는 추가 기능을 포함할 수 있다. 통신 인터페이스(214)의 예들은 네트워크 인터페이스 제어기, 네트워크 인터페이스 장치, 네트워크 소켓 및 안테나를 포함하지만, 이에 제한되지는 않는다.
도 2a는 컴포넌트들의 구성을 도시하지만, 본원에 개시된 실시예들의 범위를 벗어나지 않고 도 2a에 도시된 것과 다른 단말 장치 구성이 사용될 수 있다.
도 2b는 본원에 개시된 하나 이상의 실시예들에 따른 네트워크 게이트웨이를 도시한다. 네트워크 게이트웨이(220)는 전원(222), 메모리(224), 하나 이상의 프로세서(들)(226) 및 통신 인터페이스(228)를 포함한다. 이러한 컴포넌트들 각각은 이하에 설명된다.
본원에 개시된 하나 이상의 실시예들에서, 전원(222)은 도 2a의 단말 장치들과 관련하여 상술된 전원(202)과 실질적으로 유사할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 메모리(224)는 예를 들어 랜덤 액세스 메모리(RAM) 및 캐시 메모리와 같은 임의의 비-영구적 또는 휘발성 메모리일 수 있다. 메모리(224)는 전원(222) 및 하나 이상의 프로세서(들)(226)에 동작 가능하게 연결될 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 하나 이상의 프로세서(들)(226)는 도 2a의 전술된 프로세서(들)(208)와 실질적으로 유사할 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 통신 인터페이스(228)는 LoRaWAN 메시지 프레임들, MAC 프레임들 또는 이들의 조합을 수신 및 전송하기 위한 소프트웨어를 포함하는 물리적 장치일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 통신 인터페이스(228)는 LoRaWAN 메시지 프레임들, MAC 프레임들, 또는 이들의 조합을 수신 및 전송하기 위한 펌웨어를 포함하는 물리적 장치일 수 있다. 통신 인터페이스(228)는 네트워크 게이트웨이(220)를 하나 이상의 단말 장치(들) 및 네트워크 호스트에 통신 가능하게 연결할 수 있다(예를 들어, 도 1a 참고). 본원에 개시된 일 실시예에서, 통신 인터페이스(228)는 LoRa 무선 변조, LoRaWAN 프로토콜 또는 이들의 조합을 이용하여 정보를 수신 및 송신할 수 있다. 통신 인터페이스(228)는 추가로 또는 대안적으로 TCP/IP 스택 및 프로토콜을 이용하여 백홀 네트워크(전술됨)에 존재하는 시스템들로부터/로 정보를 수신 및 송신할 수 있다. 본원에 개시된 다른 실시예에서, 통신 인터페이스(228)는 정보를 수신 및 전송하기 위해 임의의 다른 기존의 또는 미래에 개발되는 변조, 스택, 프로토콜 또는 이들의 조합을 이용할 수 있다. 통신 인터페이스(228)의 예들은 네트워크 인터페이스 제어기, 네트워크 인터페이스 장치, 네트워크 소켓, 이더넷 포트 및 안테나를 포함하지만 이에 제한되지는 않는다.
도 2b는 컴포넌트들의 구성을 도시하지만, 본원에 개시된 실시예들의 범위를 벗어나지 않고 도 2b에 도시된 것과 다른 네트워크 게이트웨이 구성들이 사용될 수 있다.
도 2c는 본원에 개시된 하나 이상의 실시예들에 따른 네트워크 호스트를 도시한다. 네트워크 호스트(240)는 데이터 저장소(242), 하나 이상의 프로세서(들)(244) 및 통신 인터페이스(250)를 포함한다. 이러한 컴포넌트들 각각은 아래에서 설명된다.
본원에 개시된 하나 이상의 실시예들에서, 데이터 저장소(242)는 임의의 유형의 저장 유닛, 데이터 구조, 장치 또는 이들의 조합일 수 있다(예를 들어, 파일 시스템, 데이터베이스, 테이블들의 모음, 또는 임의의 다른 저장 메커니즘). 데이터 저장소(242)는 어느 네트워크 게이트웨이가 어느 단말 장치에 동작 가능하게 연결될 수 있는지를 추적하기 위한 라우팅 테이블, 하나 이상의 네트워크 세션 키(들), 하나 이상의 애플리케이션 세션 키(들), 하나 이상의 헤더 블라인딩 키(들), 그리고 네트워크 호스트(240)에 동작 가능하게 연결된 각각의 단말 장치와 연관된 모니터링되는 데이터 속도들 및 RF 출력들을 포함하지만 이에 제한되지 않는, 본원에 개시된 실시예들에 관한 임의의 정보를 통합(consolidating)하는 기능을 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 데이터 저장소(242)는 동일한 유형이거나 동일한 유형이 아닐 수 있는, 또는 동일한 물리적 사이트에 위치하거나 위치하지 않을 수 있는, 다수의 저장 유닛들, 데이터 구조들 또는 장치들을 사용하여 구현될 수 있다. 데이터 저장소(242)의 예들은 솔리드 스테이트 드라이브, 광 디스크 드라이브, 자기 스토리지, 클라우드 기반 스토리지 시스템 및 임의의 다른 영구적 및 비-휘발성 스토리지 매체를 포함하지만, 이에 제한되지는 않는다.
본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트(240)의 하나 이상의 프로세서(들)(244)는 도 2a 또는 도 2b의 단말 장치들 또는 네트워크 게이트웨이들과 관련하여 전술된 프로세서(들)와 실질적으로 유사할 수 있다. 또한, 본원에 개시된 하나 이상의 실시예들에서, 블라인딩 필터(246)는 네트워크 호스트(240)의 하나 이상의 프로세서(들)(224) 상에서 실행될 수 있다. 본원에 개시된 일 실시예에서, 블라인딩 필터(246)는 컴퓨터 프로그램의 적어도 일부 또는 컴퓨터 판독 가능 프로그램 코드의 세트일 수 있다. 하나 이상의 프로세서(들)(244)에 의해 실행될 때, 블라인딩 필터(246)는 하나 이상의 프로세서(들)(244)가 본원에 개시된 실시예들에 따라 블라인딩 또는 언블라인딩 작업들을 수행하게 할 수 있다(예를 들어, 도 6a 내지 도 7b 참고).
본원에 개시된 하나 이상의 실시예들에서, 결정 논리(248)는 단말 장치(240)의 하나 이상의 프로세서(들)(244) 상에서 실행될 수 있다. 본원에 개시된 일 실시예에서, 결정 논리(248)는 컴퓨터 프로그램의 적어도 일부 또는 컴퓨터 판독 가능 프로그램 코드의 세트일 수 있다. 하나 이상의 프로세서(들)(244)에 의해 실행될 때, 결정 논리(248)는 하나 이상의 프로세서(들)(244)에게 본원에 개시된 실시예들에 따라 네트워크 작업들을 모니터링 및 최적화하는 기능을 제공할 수 있다(예를 들어, 도 9 참고).
본원에 개시된 하나 이상의 실시예들에서, 통신 인터페이스(250)는 MAC 프레임들을 수신 및 전송하기 위해 소프트웨어를 포함하는 물리적 장치일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 통신 인터페이스(250)는 MAC 프레임들을 수신 및 전송하기 위해 펌웨어를 포함하는 물리적 장치일 수 있다. 통신 인터페이스(250)는 네트워크 호스트(240)를 하나 이상의 네트워크 게이트웨이(들) 및 하나 이상의 애플리케이션 시스템(들)에 통신 가능하게 연결할 수 있다(예를 들어, 도 1b 참고). 본원에 개시된 일 실시예에서, 통신 인터페이스(250)는 TCP/IP 스택 및 프로토콜을 사용하여 정보를 수신 및 전송할 수 있다. 본원에 개시된 다른 실시예에서, 통신 인터페이스(250)는 임의의 다른 기존의 또는 미래에 개발되는 네트워킹 스택, 프로토콜 또는 이들의 조합을 사용하여 정보를 수신 및 전송할 수 있다. 통신 인터페이스(250)의 예들은 이더넷 포트, 네트워크 인터페이스 제어기, 네트워크 인터페이스 장치, 네트워크 소켓 및 안테나를 포함하지만, 이에 제한되지는 않는다.
도 2c는 컴포넌트들의 구성을 도시하지만, 본원에 개시된 실시예들의 범위를 벗어나지 않고 도 2c에 도시된 것과 다른 네트워크 호스트 구성들이 사용될 수 있다.
도 3은 본원에 개시된 하나 이상의 실시예들에 따른 LoRaWAN 메시지 프레임을 도시한다. LoRaWAN 메시지 프레임(300)은 프리앰블(302), 물리적 헤더(PHDR)(304), PHDR 순환 중복 검사(CRC)(306) 및 PHY(physical) 페이로드(308)를 포함한다. 이러한 전술한 컴포넌트들은 단말 장치에 의해 네트워크 호스트에 전송될 수 있는 업링크 메시지 프레임 내에 존재할 수 있다. 본원에 개시된 일 실시예에서, 네트워크 호스트에 의해 단말 장치에 전송될 수 있는 다운 링크 메시지 프레임들을 고려할 때, LoRaWAN 메시지 프레임(300)은 CRC(310)를 더 포함할 수 있다. 이러한 컴포넌트들 각각이 이하에 설명된다.
본원에 개시된 하나 이상의 실시예들에서, 프리앰블(302), PHDR(304), PHDR CRC(306), PHY 페이로드(308) 및 CRC(310)는 LoRa® 프로토콜 스택 물리 계층에 의해 생성될 수 있다. 물리 계층은 무선 주파수(RF) 전송을 통해 PHY 페이로드(308)를 전송하기 위해 LoRaWAN 메시지 프레임(300)을 구성할 수 있다. 예로서, 물리 계층은 단말 장치 또는 네트워크 호스트상의 무선 하드웨어(즉, 통신 인터페이스)일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, PHDR(304) 및 PHY 페이로드(308)의 무결성은 각각 PHDR CRC(306) 및 CRC(310)에 의해 유지된다.
본원에 개시된 하나 이상의 실시예들에서, PHY 페이로드(308)는 매체 접근 제어(MAC) 헤더(MHDR)(320)를 포함하는 데이터 구조일 수 있다. MHDR(320)은 LoRaWAN 메시지 프레임(300)의 메시지 유형 및 LoRaWAN 메시지 프레임(300)이 인코딩되는 LoRaWAN 계층 사양의 메시지 프레임 포맷의 버전을 포함하지만 이에 제한되지 않는 정보를 지정할 수 있다. PHY 페이로드(308)는 MAC 페이로드(322)(이하에 설명됨) 및 메시지 무결성 코드(MIC)(324)를 더 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, MIC(324)는 MAC 페이로드(322)의 데이터 무결성을 보장하기 위해 LoRaWAN 메시지 프레임(300)의 여러 컴포넌트들(예를 들어, 도 4a 및 도 4b 참조)에 대해 계산되고 검증된 16 진수일 수 있다.
본원에 개시된 하나 이상의 실시예들에서, MAC 페이로드(322)는 프레임 헤더(FHDR)(340)를 포함하는 데이터 구조일 수 있다. FHDR(340)는 더 세분화될 수 있고, 이에 따라 장치 주소(DevAddr)(360), 프레임 제어(FCtrl)(362), 프레임 카운트(FCnt)(364) 및 프레임 옵션(FOpts)(366)을 포함한다. DevAddr(360)는 단말 장치의 활성화 동안 네트워크 호스트에 의해 동적으로 할당될 수 있는 단말 장치의 네트워크 주소를 나타낼 수 있다(예를 들어, 도 5 참고). FCtrl(362)은 무선 송수신기(즉, 통신 인터페이스)의 설정 데이터 속도, 전송 전력, 반복 속도 및 주파수 채널을 포함하지만 이에 제한되지 않는 정보를 포함할 수 있다. FCnt(364)는 교환된 업링크 메시지들 및 다운링크 메시지들의 수를 추적할 수 있다. 또한, FOpt(366)는 MAC 명령들을 전송하는데 사용될 수 있으며, 이는 네트워크 호스트가 단말 장치에 명령들을 발행할 수 있게 한다. 발행된 명령들은 예를 들어 단말 장치에게 하나 이상의 단말 장치 구성 파라미터(들)를 조정할 것을 지시할 수 있다(예를 들어, 도 9 참고).
본원에 개시된 하나 이상의 실시예들에서, MAC 페이로드(322)는 프레임 포트(FPort)(342) 및 프레임 페이로드(344)를 더 포함할 수 있다. FPort(342)는 프레임 페이로드(344)를 암호화하기 위해 사용할 세션 키(예를 들어, 네트워크 세션 키(NwkSKey) 또는 애플리케이션 세션 키(AppSKey))를 나타낼 수 있다. 마지막으로, 프레임 페이로드(344)는 단말 장치 또는 네트워크 호스트가 서로에게 전송을 시도할 수 있는 컨텐츠를 나타낼 수 있다. 당업자는 이제 LoRaWAN 메시지 프레임(300)이 본원에 개시된 실시예들을 벗어나지 않고 다른 컴포넌트들을 포함할 수 있음을 이해할 것이다.
도 3은 컴포넌트들의 구성을 도시하지만, 본원에 개시된 실시예들의 범위를 벗어나지 않고 LoRaWAN 사양에 관한 도 3에 도시된 것과 다른 메시지 프레임 구성들이 사용될 수 있다. 예를 들어, IEEE 802.15.4 표준을 따르는 메시지 프레임(예를 들어, 매체 접근 제어(MAC) 프레임)이 대신 사용될 수 있다.
도 4a는 본원에 개시된 하나 이상의 실시예들에 따른 LoRaWAN 보안 프로세스를 도시하는 다이어그램을 도시한다. 프로세스(400A)는 소스 장치가 목적지 장치로 전송하려고 시도할 수 있는 컨텐츠를 나타낼 수 있는 프레임 페이로드(402)를 획득함으로써 시작될 수 있다. 여기서, 암호화 동작(406)은 적어도 애플리케이션 세션 키(AppSKey)(404)를 사용하여 프레임 페이로드(402)에 적용될 수 있다. 본원에 개시된 하나 이상의 실시예들에서, AppSKey(404)는 단말 장치에 고유하고 단말 장치 및 애플리케이션 시스템에만 알려진 고유한 16 진수일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, AppSKey는 프레임 페이로드(402)를 암호화 및 해독하기 위해 단말 장치 및 애플리케이션 시스템에 의해 사용될 수 있다. 본원에 개시된 일 실시예에서, 수행된 암호화 동작(406)은 고급 암호화 표준(advanced encryption standard; AES) 알고리즘을 수반할 수 있다. 본원에 개시된 다른 실시예에서, 암호화 동작(406)은 임의의 다른 기존의 또는 미래에 개발되는 대칭 암호를 수반할 수 있다. 전술한 암호화 동작(406)의 결과는 암호화된 프레임 페이로드(414)를 산출할 수 있다.
본원에 개시된 하나 이상의 실시예들에서, 대칭 암호는 암호화되지 않은 정보를 암호화하고 암호화된 정보를 해독하기 위해 동일한 암호화 키들을 사용하는 암호화 알고리즘일 수 있다. 본 개시서에서, 예를 들어, 암호화 키는 헤더 블라인딩 키(HdrBKey)일 수 있으며, 이는 평문 헤더(즉, 암호화되지 않은 정보)를 블라인딩 (또는 암호화)하고 블라인딩된 헤더(즉, 암호화된 정보)를 언블라인딩(또는 해독화)하는데 사용될 수 있다. 전술한 AES 알고리즘 이외에, 본원에 개시된 하나 이상의 실시예들에서 이용될 수 있는 다른 대칭 암호들의 예들은 Twofish 알고리즘, Serpent 알고리즘, Blowfish 알고리즘, CAST5 알고리즘, Kuznyechik 알고리즘, Rivest Cipher (RC) 4 알고리즘, 3DES(Triple Data Encryption Standard) 알고리즘, Skipjack 알고리즘 및 국제 데이터 암호화 알고리즘(IDEA)을 포함하지만, 이에 제한되지는 않는다.
본원에 개시된 하나 이상의 실시예들에서, 프로세스(400A)는 MAC 페이로드(408)의 생성을 통해 진행될 수 있다. MAC 페이로드(408)는 프레임 헤더(FHDR)(410), 프레임 포트(FPort)(412) 및 암호화된 프레임 페이로드(414)를 연결함으로써 달성될 수 있다. FHDR(410)은 장치 주소(418), 프레임 제어(FCtrl)(420), 프레임 카운트(FCnt)(422) 및 프레임 옵션(FOpts)(424)을 포함할 수 있다. 본원에 개시된 일 실시예에서, FHDR(410)은 MAC 헤더(MHDR)(416) 및 FPort(412)와 함께 총괄적으로 평문 헤더(428)로 지칭될 수 있다. 본원에 개시된 다른 실시예에서, 평문 헤더(428)는 적어도 장치 주소(418) 및 FCnt(422)를 포함할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, "평문(plain)"이라는 용어는 도청 또는 인터셉션에 취약할 수 있는, 노출되거나 암호화되지 않은 또는 취약한 상태를 나타내는 것을 지칭할 수 있다.
프로세스(400A)로 진행하여, 평문 헤더(428)에 암호화된 프레임 페이로드(414) 및 메시지 무결성 코드(MIC)(430)가 추가되어 물리적(PHY) 페이로드(426)를 획득할 수 있다. MIC(430)는 적어도 네트워크 세션 키(NwkSKey)(432)를 사용하여 평문 헤더(428) 및 암호화된 프레임 페이로드 (414)에 집합적으로 또 다른 암호화 연산(434)을 적용함으로써 생성될 수 있다. 본원에 개시된 하나 이상의 실시예들에서, NwkSKey(432)는 단말 장치에 고유하고 단말 장치 및 네트워크 호스트에만 알려진 고유한 16 진수일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, NwkSKey(432)는 데이터 무결성을 보장하기 위해 MIC(430)를 계산하고 검증하기 위해 단말 장치 및 네트워크 호스트에 의해 사용될 수 있다. 본원에 개시된 일 실시예에서, 수행되는 암호화 작업(434)은 AES 알고리즘을 수반할 수 있다. 본원에 개시된 다른 실시예에서, 수행되는 암호화 작업(434)은 임의의 다른 기존의 또는 미래에 개발되는 대칭 암호를 수반할 수 있다.
도 4b는 본원에 개시된 하나 이상의 실시예들에 따른 강화된 LoRaWAN 보안 프로세스를 설명하는 다이어그램을 도시한다. 강화된 프로세스(400B)는 블라인딩 작업(442)을 제외하고는 도 4a에 도시된 프로세스(400A)와 실질적으로 유사하다. 본원에 개시된 하나 이상의 실시예들에서, 블라인딩 작업(442)의 도입은 LoRaWAN 메시지 프레임 내에 배치된 헤더 정보의 도청 또는 인터셉트 가능성을 없앨 수 없다면 최소화할 수 있다. 또한, 블라인딩 작업(442)은 적어도 헤더 블라인딩 키(HdrBKey)(440)를 사용하여 평문 헤더(428)에 적용될 수 있다. 전술한 바와 같이, 평문 헤더(428)는 도청 또는 인터셉트에 취약할 수 있는 (MHDR(416), 장치 주소(DevAddr)(418), FCtrl(420), FCnt(422), FOpts(424) 및 FPort(412)를 포함하는) 암호화되지 않은 헤더를 지칭할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 강화된 프로세스(400B)는 블라인딩된 (또는 암호화된) 헤더(444)를 생성함으로써 이 취약점을 해결한다. 본원에 개시된 하나 이상의 실시예들에서, HdrBKey(440)는 단말 장치에 고유하고 단말 장치 및 네트워크 호스트에만 알려진 고유한 16 진수일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, HdrBKey(440)는, 단말 장치 및 네트워크 호스트에 의해, 평문 헤더를 블라인딩/암호화하고 블라인딩된 헤더를 언블라인딩/해독화하는데 사용될 수 있다. 본원에 개시된 일 실시예에서, 수행된 블라인딩 작업(434)은 AES 알고리즘을 수반할 수 있다. 본원에 개시된 다른 실시예에서, 수행된 블라인딩 작업(434)은 임의의 다른 기존의 또는 미래에 개발되는 대칭 암호를 수반할 수 있다.
도 5 내지 도 9는 본원에 개시된 하나 이상의 실시예들에 따른 흐름도를 도시한다. 흐름도의 다양한 단계들이 순차적으로 제공되고 설명되지만, 당업자는 단계들 중 일부 또는 전부가 다른 순서로 실행될 수 있고, 결합되거나 생략될 수 있고, 일부 또는 모든 단계들이 동시에 실행될 수 있음을 이해할 것이다. 본원에 개시된 일 실시예에서, 도 5 내지 도 9에 도시된 단계들은 본원에 개시된 실시예들의 범위를 벗어나지 않으면서 도 5 내지 도 9에 도시된 임의의 다른 단계들과 동시에 수행될 수 있다.
도 5a 및 도 5b는 본원에 개시된 하나 이상의 실시예들에 따른 단말 장치를 활성화시키기 위한 방법을 설명하는 흐름도들을 도시한다. 구체적으로, 도 5a 및 도 5b는 OTAA(over the air activation) 방법을 설명한다. OTAA는 단말 장치가 네트워크에 가입하고 네트워크 호스트와의 안전한 정보 교환에 참여할 수 있게 하는 한 가지 방법일 수 있다. 또한, 후술되는 OTAA 절차는 단말 장치가 초기에 배치될 때 또는 단말 장치가 리셋될 때마다 수행될 수 있다.
단계 500에서, 단말 장치는 가입 요청 메시지를 생성한다. 본원에 개시된 하나 이상의 실시예들에서, 가입 요청 메시지는 고유 식별자를 매체 접근 제어(MAC) 헤더(MHDR)로서 포함하는 LoRaWAN 메시지 프레임(예를 들어, 도 3 참고)일 수 있으며, 이에 의해 LoRaWAN 메시지 프레임을 가입 요청 메시지 유형과 연관시킨다(affiliating). 본원에 개시된 하나 이상의 실시예들에서, 가입 요청 메시지는 애플리케이션 식별자(AppEUI), 장치 식별자(DevEUI) 및 애플리케이션 키(AppKey)를 더 포함할 수 있다. AppEUI는 특정 애플리케이션 시스템(즉, 단말 장치를 소유하거나 제어하는 애플리케이션 시스템)을 고유하게 식별하는 전역적으로 고유한(globally unique) 16 진수일 수 있다. 또한, DevEUI는 특정 단말 장치(즉, 가입 요청 메시지를 생성하는 단말 장치)를 고유하게 식별하는 전역적으로 고유한 16 진수일 수 있다. 또한, AppKey는 단말 장치에 고유할 수 있는 고유한 16 진수 일 수 있다. AppKey는 단말 장치가 네트워크 호스트와의 안전한 정보 교환에 참여할 수 있게 하는데 필요한 세션 키들 및 블라인드 키를 도출하기 위해 단말 장치에 의해 사용될 수 있다(예를 들어, 단계 526 참고). AppKey는 제조 공정 동안 단말 장치에 사전-프로비저닝(또는 저장)될 수 있다. 본원에 개시된 하나 이상의 실시예들에서, AppEUI, DevEUI 및 AppKey는 제조 공정 동안 단말 장치에 사전-프로비저닝(또는 저장)될 수 있다. 당업자는 가입 요청 메시지가 본원에 개시된 실시예들의 범위를 벗어나지 않으면서 추가 컴포넌트들을 포함할 수 있다는 것을 이해할 것이다.
단계 502에서, 단말 장치는 (단계 500에서 생성된) 가입 요청 메시지를 네트워크 호스트를 향해 전송한다. 단계 504에서, 네트워크 호스트는 (단계 502에서 단말 장치에 의해 전송된) 가입 요청 메시지를 수신한다. 구체적으로, 본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트는 가입 요청 메시지를 캡슐화하는 MAC 프레임을 수신할 수 있다. 수신된 MAC 프레임은 단말 장치로부터 가입 요청 메시지를 수신할 때 네트워크 게이트웨이에 의해 생성되었을 수 있다. 이어서, 네트워크 호스트는 MAC 프레임을 디캡슐화하여 가입 요청 메시지의 다양한 컴포넌트들(예를 들어, AppEUI, DevEUI 및 AppKey)에 액세스할 수 있다.
단계 506에서, 네트워크 호스트는 단말 장치가 네트워크에 가입하거나 참여할 수 있는지 여부를 판단한다. 본원에 개시된 하나 이상의 실시예들에서, 상기 판단은 적어도 AppEUI, DevEUI 및 AppKey를 사용하여, 가입 요청 메시지, 보다 구체적으로는, 가입 요청 메시지의 메시지 무결성 코드(MIC)(예를 들어, 도 3 참고)를 인증하는 것을 수반할 수 있다. 단말 장치가 네트워크에 가입하거나 참여할 수 있는 경우(즉, MIC의 인증이 성공한 경우), 프로세스는 단계 508로 진행한다. 한편, 단말장치가 네트워크에 가입 또는 참여할 수 없는 경우(예를 들어, MIC 인증이 실패한 경우) 프로세스가 종료된다.
단계 508에서, 단말 장치가 네트워크에 가입하거나 참여할 수 있다고 판단시, 네트워크 호스트는 가입 승인 메시지를 생성한다. 본원에 개시된 하나 이상의 실시예들에서, 가입 승인 메시지는 MHDR로서 고유 식별자를 포함하는 LoRaWAN 메시지 프레임(예를 들어, 도 3 참고)일 수 있으며, 이에 의해 LoRaWAN 메시지 프레임을 가입 승인 유형과 연관시킨다. 본원에 개시된 하나 이상의 실시예들에서, 가입 승인 메시지는 장치 주소(DevAddr) 및 네트워크 식별자(NetID)를 더 포함할 수 있다. DevAdrr은 네트워크의 단말 장치에 대한 네트워크 주소를 고유하게 식별하는 고유한 16 진수이다. DevAddr는 가입 요청 메시지를 수신 및 인증하는 것에 응답하여 네트워크 호스트에 의해 동적으로 할당될 수 있다. 또한, NetID는 특정 네트워크(즉, 적어도 네트워크 호스트가 상주하는 네트워크)를 고유하게 식별하는 전역적으로 고유한 16 진수일 수 있다. 당업자는 이제 가입 승인 메시지가 본원에 개시된 실시예들의 범위를 벗어나지 않고 추가 컴포넌트들을 포함할 수 있다는 것을 이해할 것이다.
도 5b를 참조하면, 단계 520에서, 네트워크 호스트는 가입 승인 메시지를 단말 장치에게 전송한다. 구체적으로 본원에 개시된 하나 이상의 실시예들에서, 가입 승인 메시지를 생성한 후, 네트워크 호스트는 예를 들어 AES(Advanced Encryption Standard) 암호화 알고리즘과 함께 AppKey를 사용하여 가입 승인 메시지를 암호화 할 수 있다. 대안적으로, 네트워크 호스트는 임의의 다른 기존의 또는 미래에 개발 되는 대칭 암호와 관련하여 AppKey를 사용하여 가입 승인 메시지를 암호화할 수 있다. 이어서, 네트워크 호스트는 암호화된 가입 승인 메시지를 MAC 프레임 내에 캡슐화할 수 있으며, 여기서 MAC 프레임은 단말 장치를 향해 전송된다. 본원에 개시된 하나 이상의 실시예들에서, 단말 장치로부터 떨어져있는 싱글-홉(single-hop)일 수 있는 네트워크 게이트웨이에 도달하면, 네트워크 게이트웨이는 암호화된 가입 승인 메시지를 단말 장치에게 전송하기 전에 MAC 프레임을 디캡슐화할 수 있다.
단계 522에서, 단말 장치는 (단계 520에서 네트워크 호스트에 의해 전송된) 가입 승인 메시지를 수신한다. 위에서 언급한 바와 같이, 본원에 개시된 하나 이상의 실시예들에서, 수신된 가입 승인 메시지는 암호화될 수 있다. 단계 524에서, 단말 장치는 후속적으로 (단계 522에서 수신된) 가입 승인 메시지를 해독한다. 본원에 개시된 하나 이상의 실시예들에서, 단말 장치는 가입 승인 메시지의 다양한 컴포넌트들(예를 들어, DevAddr 및 NetID)에 액세스하기 위해 AppKey를 사용하여 가입 승인 메시지를 해독할 수 있다.
단계 526에서, 단말 장치는 네트워크 세션 키(NwkSKey), 애플리케이션 세션 키(AppSKey) 및 헤더 블라인딩 키(HdrBKey)를 도출한다. 본원에 개시된 하나 이상의 실시예들에서, 전술된 키들 각각은 적어도 AppKey 및 NetlD를 사용하여 도출될 수 있다. 당업자는 이제 추가적인 또는 대안적인 컴포넌트들이 전술된 키들을 도출하기 위해 단말 장치에 의해 사용될 수 있음을 이해할 것이다. NwkSKey는 단말 장치에 고유하고 단말 장치와 네트워크 호스트에만 알려져 있는 고유한 16 진수일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, NwkSKey는, 단말 장치 및 네트워크 호스트에 의해, 데이터 무결성을 보장하기 위해 모든 LoRaWAN 메시지 프레임들의 MIC를 계산 및 검증하는데 사용될 수 있다(예를 들어, 도 3, 도 4A 및 도 4B 참고). 또한, AppSKey는 단말 장치에 고유하고 단말 장치 및 애플리케이션 시스템에게만 알려진 고유한 16 진수일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, AppSKey는. 단말 장치 및 애플리케이션 시스템에 의해, LoRaWAN 메시지 프레임의 프레임 페이로드(예를 들어, 도 3, 도 4A 및 도 4B 참고)를 암호화 및 해독화하는데 사용될 수 있다. 또한, HdrBKey는 단말 장치에 고유하고 단말 장치 및 네트워크 호스트에게만 알려진 고유한 16 진수일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, HdrBKey는, 단말 장치 및 네트워크 호스트에 의해, LoRaWAN 메시지 프레임의 평문 헤더를 블라인딩/암호화하고 블라인딩된 헤더를 언블라인딩/해독화하기 위해(예를 들어, 도 4B 및 도 6A-도 7B 참고) 사용될 수 있다.
도 5a 및 도 5b는 단말 장치를 활성화하기위한 하나의 방법을 설명하지만, 도 5a 및 도 5b에 도시된 것 이외의 활성화 방법들이 본원에 개시된 실시예의 범위를 벗어나지 않으면서 사용될 수 있다. 예를 들어, ABP(activation by personalization) 방법이 이용될 수 있다. ABP에서는, 위에서 설명한 절차를 수행하지 않고, 제조 공정 동안 DevAddr, NwkSKey, AppSKey 및 HdrBKey가 단말 장치에 사전-프로비저닝(또는 하드 코딩)된다. 본원에 기술된 장치들, 시스템들 및 방법들의 하나 이상의 실시예들에서, 단일 부분이 하드 코딩될 수 있다. 예를 들어, 하나 이상의 실시예들에서, DevAddr은 제조 동안 단말 장치에 제공될 수 있다. 다른 실시예에서, NwkSKey은 제조 동안 단말 장치에 제공될 수 있다. 다른 실시예에서, AppSKey은 제조 동안 단말 장치에 제공될 수 있다. 다른 실시예에서, HdrBKey은 제조 동안 단말 장치에 제공될 수 있다. 결과적으로, 이러한 사전 프로비저닝된 컴포넌트들을 사용하면, 단말 장치는 배포 또는 재설정될 때 네트워크 호스트와의 안전한 정보 교환에 즉시 참여할 수 있다.
도 6a 및 도 6b는 본원에 개시된 하나 이상의 실시예들에 따라 평문 헤더를 블라인딩하는 방법을 설명하는 흐름도들을 도시한다. 구체적으로, 도 6a는 단말 장치와 네트워크 호스트 사이에서 교환되는 임의의 제1 LoRaWAN 메시지 프레임의 평문 헤더를 블라인딩하는 방법을 설명한다. 도 6b는 단말 장치와 네트워크 호스트 사이에서 교환되는 임의의 후속(즉, 제 2, 또는 그 이상) LoRaWAN 메시지 프레임의 평문 헤더를 블라인딩하는 방법을 설명한다.
도 6a를 참조하면, 단계 600에서, 제1 LoRaWAN 메시지 프레임의 일부가 생성된다. 본원에 개시된 하나 이상의 실시예들에서, 상기 부분은 제1 평문 헤더 및 제1 암호화된 프레임 페이로드를 포함할 수 있다. 도 3과 관련하여 전술한 바와 같이, 평문 헤더는 다음의 컴포넌트들을 포함할 수 있다 : MAC 헤더(MHDR), 장치 주소(DevAddr), 프레임 제어(FCtrl), 프레임 카운트(FCnt), 프레임 옵션(FOpts) 및 프레임 포트(FPort). 본원에 개시된 하나 이상의 실시예들에서, 제1 평문 헤더 및 제1 암호화된 프레임 페이로드는 총괄적으로 제1 LoRaWAN 메시지 프레임의 물리적(PHY) 페이로드의 일부를 나타낼 수 있다. 본원에 개시된 일 실시예에서, 단계 600은 단말 장치에 의해 수행될 수 있으며, 여기서 제1 LoRaWAN 메시지 프레임은 업 링크 메시지일 수 있다. 본원에 개시된 다른 실시예에서, 단계 600은 네트워크 호스트에 의해 수행될 수 있으며, 여기서, 상기 제1 LoRaWAN 메시지 프레임은 다운링크 메시지일 수 있다.
단계 602에서, 장치 식별자(DevEUI) 및 헤더 블라인딩 키(HdrBKey)가 획득된다. 본원에 개시된 하나 이상의 실시예들에서, DevEUI 및 HdrBKey는 단말 장치 또는 네트워크 호스트 상에 위치하는 로컬 스토리지 또는 메모리로부터 검색될 수 있다. 추가로, 본원에 개시된 일 실시예에서, DevEUI 및 HdrBKey는 (위에서 논의 된) 사전-프로비저닝을 통해(즉, ABP(activation by personalization)에 의해) 단말 장치 또는 네트워크 호스트 상에 로컬로 저장될 수 있다. 본원에 개시된 다른 실시예에서, DevEUI 및 HdrBKey는 도 5a 및 도 5b와 관련하여 위에서 설명된 방법을 수행한 후 단말 장치 또는 네트워크 호스트 상에 로컬로 저장될 수 있다.
단계 604에서, 제1 헤더 마스크가 생성된다. 본원에 개시된 하나 이상의 실시예들에서, 제1 헤더 마스크는 HdrBKey를 사용하여 DevEUI에 대한 암호화 작업을 수행함으로써 생성될 수 있다. 또한, 암호화 작업은 임의의 기존의 또는 미래에 개발되는 대칭 암호를 수반할 수 있다. 예로서, 본원에 개시된 일 실시예에서, 암호화 작업은 AES 암호화 알고리즘을 이용할 수 있다.
단계 606에서, (단계 604에서 생성된) 제1 헤더 마스크가 제1 평문 헤더에 적용된다. 본원에 개시된 하나 이상의 실시예들에서, 제1 헤더 마스크를 제1 평문 헤더에 적용하는 것은 제1 헤더 마스크 및 제1 평문 헤더를 관여시키는 비트간 배타적 논리합(bitwise exclusice OR) 연산(즉, XOR)을 수행하는 것을 수반할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 제1 블라인딩된 헤더는 전술한 비트간 XOR 연산으로부터 야기될 수 있다.
단계 608에서, (단계 600에서 생성된) 제1 LoRaWAN 메시지 프레임의 일부가 업데이트된다. 본원에 개시된 하나 이상의 실시예들에서, 업데이트는 제1 평문 헤더를 (단계 606에서 획득된) 제1 블라인딩된 헤더로 교체하는 것을 수반할 수 있다. 단계 610에서, 제1 LoRaWAN 메시지 프레임의 나머지는 LoRaWAN 사양에 따라 생성되어 제1 블라인딩된 LoRaWAN 메시지 프레임을 생성할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 제1 블라인딩된 LoRaWAN 메시지 프레임은 적어도 (단계 608에서 획득된) 제1 블라인딩된 헤더를 포함한다. 후속하여, 단계 612에서, (단계 610에서 생성된) 제1 블라인딩된 LoRaWAN 메시지 프레임이 전송된다. 본원에 개시된 하나 이상의 실시예들에서, 전송 엔티티가 단말 장치이든 네트워크 호스트이든, 제1 블라인딩된 LoRaWAN 메시지 프레임은 네트워크 게이트웨이에게 전송될 수 있다.
도 6b를 참조하면, 단계 620에서, 제2 (또는 후속하는) LoRaWAN 메시지 프레임의 일부가 생성된다. 본원에 개시된 하나 이상의 실시예들에서, 제2 (또는 후속하는) LoRaWAN 메시지 프레임의 일부는 제2 (또는 후속하는) 평문 헤더 및 제2 (또는 후속하는) 암호화된 프레임 페이로드를 포함할 수 있다.
단계 622에서, 제2 (또는 후속하는) 헤더 마스크가 생성된다. 본원에 개시된 하나 이상의 실시예들에서, 제2 (또는 후속하는) 헤더 마스크는 HdrBKey를 사용하여 제1 (또는 이전에 생성된) 헤더 마스크에 대해 암호화 작업을 수행함으로써 생성될 수 있다. 또한, 암호화 작업은 임의의 기존의 또는 미래에 개발되는 대칭 암호를 수반할 수 있다. 예로서, 본원에 개시된 일 실시예에서, 암호화 작업은 AES 암호화 알고리즘을 이용할 수 있다.
단계 624에서, (단계 622에서 생성된) 제2 (또는 후속하는) 헤더 마스크는 제2 (또는 후속하는) 평문 헤더에 적용된다. 본원에 개시된 하나 이상의 실시예들에서, 제2 (또는 후속하는)를 제2 (또는 후속하는) 평문 헤더에 적용하는 것은 제2 (또는 후속하는) 헤더 마스크 및 제2 (또는 후속하는) 평문 헤더를 관여시키는 비트간 배타적 논리합(bitwise exclusice OR) 연산(즉, XOR)을 수행하는 것을 수반할 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 제2 (또는 후속하는) 블라인딩된 헤더는 전술한 비트간 XOR 연산으로부터 야기될 수 있다.
단계 626에서, (단계 620에서 생성된) 제2 (또는 후속하는) LoRaWAN 메시지 프레임의 일부가 업데이트된다. 본원에 개시된 하나 이상의 실시예들에서, 업데이트는 제2 (또는 후속하는) 평문 헤더를 (단계 624에서 획득된) 제2 (또는 후속하는) 블라인딩된 헤더로 대체하는 것을 수반할 수 있다. 여기서, 제2 (또는 후속하는) LoRaWAN 메시지 프레임의 나머지는 LoRaWAN 사양에 따라 생성될 수 있다. 결과적으로 제2 (또는 후속하는) 블라인딩된 LoRaWAN 메시지 프레임을 획득한다. 이어서, 단계 628에서, 제2 (또는 후속하는) 블라인딩된 LoRaWAN 메시지 프레임이 전송된다. 본원에 개시된 하나 이상의 실시예들에서, 전송 엔티티가 단말 장치이든 네트워크 호스트이든, 제2 (또는 후속하는) 블라인딩된 LoRaWAN 메시지 프레임은 네트워크 게이트웨이에게 전송될 수 있다.
도 7a 및 도 7b는 본원에 개시된 하나 이상의 실시예들에 따라 블라인딩된 헤더를 언블라인딩하는 방법을 설명하는 흐름도들을 도시한다. 본원에 개시된 일 실시예에서, 다음의 언블라인딩 방법은 네트워크 호스트에 의해서만 수행될 수 있다. 본원에 개시된 다른 실시예에서, 다음의 언블라인딩 방법(또는 보다 정확하게는, 단계 700 내지 단계 724)이 단말 장치에서 추가로 수행될 수 있다. 후자의 실시예에서, (네트워크 호스트에 의해 수행되는 방법을 고려하여 아래에 소개될) "장치 집단의 각각의 단말 장치에 대해"를 지칭하는 용어는 "단말 장치에 대해"(즉, 언블라인딩 방법을 수행하는 최종 장치)를 지칭하는 용어를 반영하도록 대체될 수 있다.
단계 700에서, 장치 집단 내의 각각의 단말 장치에 대해, 장치 식별자(DevEUI), 헤더 블라인딩 키(HdrBKey) 및 장치 주소(DevAddr)가 획득된다. 본원에 개시된 하나 이상의 실시예들에서, 장치 집단은 네트워크 호스트가 동작 가능하게 (또는 통신 가능하게) 연결된 단말 장치들의 세트를 지칭할 수 있다. 도 1b를 참조하면, 네트워크 호스트(106)에 의해 관리되는 장치 집단은 단말 장치들 A-C (102A-102C), 단말 장치들 J-L (102J-102L) 및 단말 장치들 S-U (102S-102U)를 포함할 수 있다. 또한, 위에서 언급한 바와 같이, DevEUI, HdrBKey 및 DevAddr은 각각 단말 장치에 고유하다. 따라서, 본원에 개시된 하나 이상의 실시예들에서, 장치 집단에 대해, 고유 DevEUI들의 세트, 고유 HdrBKey들의 세트 및 DevAddr들의 세트가 획득될 수 있다. 또한, 본원에 개시된 하나 이상의 실시예들에서, DevEUI들의 세트, HdrBKey들의 세트 및 DevAddr들의 세트는 네트워크 호스트에 위치하는 로컬 스토리지 또는 메모리에서 검색될 수 있다. 본원에 개시된 일 실시예에서, 전술한 정보 세트들은 (위에서 논의된) 사전-프로비저닝을 통해(즉, ABP(activation by personaliztion)에 의해) 네트워크 호스트 상에 로컬로 저장될 수 있다. 본원에 개시된 다른 실시예에서, 전술한 정보 세트들은 도 5a 및 도 5b와 관련하여 위에서 설명된 방법을 수행한 후에 네트워크 호스트 상에 로컬로 저장될 수 있다.
단계 702에서, 장치 집단 내의 각각의 단말 장치에 대해, 헤더 마스크가 생성되고, 이에 의해 헤더 마스크들의 세트를 획득한다. 본원에 개시된 일 실시예에서, 제1 LoRaWAN 메시지 프레임을 기대할 때, 제1 헤더 마스크는 HdrBKey를 사용하여 DevEUI에 대한 암호화 작업을 수행함으로써 생성될 수 있다. 본원에 개시된 다른 실시예들에서, 제2 (또는 후속하는) LoRaWAN 메시지 프레임을 기대할 때, 제2 (또는 후속하는) 헤더 마스크는 HdrBKey를 사용하여 제1 (또는 이전에 생성된) 헤더 마스크에 대한 암호화 작업을 수행함으로써 생성될 수 있다. 또한, 암호화 작업은 임의의 기존의 또는 미래에 개발되는 대칭 암호를 수반할 수 있다. 예로서, 본원에 개시된 일 실시예에서, 암호화 작업은 AES 암호화 알고리즘을 이용할 수 있다.
단계 704에서, 장치 집단 내의 각각의 단말 장치에 대해, 다음에 예상되는 LoRaWAN 메시지 프레임에 대한 후보 평문 헤더(CPH)가 생성되어 CPH들의 세트를 획득한다. 본원에 개시된 하나 이상의 실시예들에서, CPH의 생성은 랜덤 16 진수의 인스턴스화(또는 초기화)를 수반할 수 있으며, 여기서 랜덤 16 진수의 길이는 평문 헤더의 길이와 동일하다. 이어서, DevAddr(예를 들어, 도 3, 도 4A 및 도 4B 참고) 및 다른 고정 데이터를 위해 지정된 평문 헤더의 알려진 비트 위치들에서, DevAddr 및 다른 고정 데이터는 임의의 16 진수에서 해당 비트 위치로 대체될 수 있다. 전술한 치환은 CPH를 초래하는데, 이는 (DevAddr 및 다른 고정된 데이터에 의해 지정된 비트 위치에 표시되는) 유효 비트(significant bit)들의 일부 및 중요하지 않은(insignificant)(또는 상관하지 않는) 비트들의 일부를 포함할 수 있다.
단계 706에서, 장치 집단의 각각의 단말 장치에 대해, 다음 예상되는 LoRaWAN 메시지 프레임에 대해 헤더 마스크가 CPH에 적용된다. 이에 따라, 결과적으로, 장치 집단 내의 각각의 단말 장치에 대해 후보 블라인딩된 헤더(candidate blinded header; CBH)가 획득되고, 이에 의해 CBH들의 세트가 얻어진다. 본원에 개시된 하나 이상의 실시예들에서, CPH에 헤더 마스크를 적용하는 것은 헤더 마스크와 CPH를 관여시키는 비트간 배타적 논리합(bitwise exclusice OR) 연산(즉, XOR)을 수행하는 것을 수반할 수 있다.
단계 708에서, LoRaWAN 메시지 프레임이 수신된다. 본원에 개시된 하나 이상의 실시예들에서, 수신된 LoRaWAN 메시지 프레임은 블라인딩된 헤더(즉, 암호화 된 평문 헤더)를 포함할 수 있다 (예를 들어, 도 4b 참고). 또한, 수신된 LoRaWAN 메시지 프레임은 네트워크 게이트웨이에 의해 전송되었을 수 있다. 본원에 개시된 일 실시예에서, 네트워크 호스트가 언블라인딩 방법을 수행 중임을 고려할 때, 수신된 LoRaWAN 메시지 프레임은 LoRaWAN 메시지 프레임을 캡슐화하는 MAC (Media Access Control) 프레임으로서 도달할 수 있다. 본원에 개시된 다른 실시예에서, 단말 장치가 언블라인딩 방법을 수행중임을 고려할 때, 수신된 LoRaWAN 메시지 프레임은 그 자체로 (즉, MAC 캡슐화없이) 도달할 수 있다.
도 7b를 참조하면, 단계 720에서, (단계 708에서 수신된 LoRaWAN 메시지 프레임의) 블라인딩된 헤더의 고정(또는 유효) 비트들은 (단계 706에서 획득된) CBH들의 세트의 각 CBH의 고정(또는 유효) 비트들과 비교된다. 본원에 개시된 하나 이상의 실시예들에서, 상기 비교에 기초하여, 적어도 하나의 고정-비트-매칭 CBH가 식별된다. 본원에 개시된 하나 이상의 실시예들에서, 고정-비트-매칭 CBH는, CBH들의 세트 중에서, 전술한 블라인딩된 헤더에 포함된 고정(또는 유효) 비트들과 정확히 매칭하는 고정(또는 유효) 비트들을 포함하는 CBH를 지칭한다. 다수의 고정-비트-매칭 CBH들을 식별할 가능성이 존재하지만, 그 가능성은 무한히 낮은 것으로 간주된다. 결과적으로, 모든 가능성에서, 단일의 고정-비트-매칭 CBH만이 전술한 비교의 결과로서 식별될 수 있다.
단계 722에서, 식별된 헤더 마스크가 (단계 708에서 수신된 LoRaWAN 메시지 프레임의) 블라인딩된 헤더에 적용된다. 본원에 개시된 하나 이상의 실시예들에서, 식별된 헤더 마스크는 (단계 720에서 식별된) 고정-비트-매칭 CBH에 대응하는 (단계 702에서 생성된) 헤더 마스크들의 세트 중 하나의 헤더 마스크일 수 있다. 단계 706와 관련하여 위에서 논의된 바와 같이, (특정 단말 장치에 대한) CBH는 (특정 단말 장치에 대한) 다음 예상 LoRaWAN 메시지 프레임에 대하여 CPH에 (특정 단말 장치에 대한) 헤더 마스크를 적용함으로써 얻어질 수 있다. 따라서, 본원에 개시된 하나 이상의 실시예들에서, 식별된 헤더 마스크는 (특정 단말 장치와 관련된) 고정-비트-매칭 CBH를 달성하기 위해 (특정 단말 장치에 대한) CPH에 적용된 (특정 단말 장치에 대한) 헤더 마스크일 수 있다. 또한, 본원에 개시된 하나 이상의 실시예들에서, 식별된 헤더 마스크를 블라인딩 헤더에 적용함에 있어서, 평문(즉, 해독된/암호화되지 않은) 헤더가 획득된다. 본원에 개시된 하나 이상의 실시예들에서, 식별된 헤더 마스크를 블라인딩된 헤더에 적용하여, 평문 헤더를 생성하는 것은 식별된 헤더 마스크 및 블라인딩된 헤더를 관여시키는 비트간 배타적 OR(즉, XOR) 연산을 수행하는 것을 수반할 수 있다.
단계 724에서, (단계 708에서 수신된) LoRaWAN 메시지 프레임은 (단계 722에서 획득된) 평문 헤더를 사용하여 업데이트된다. 구체적으로, 본원에 개시된 하나 이상의 실시예들에서, 수신된 LoRaWAN 메시지 프레임에 존재하는 블라인딩된 헤더는 (단계 722에서 획득된) 평문 헤더로 대체될 수 있다. 그 결과 언블라인딩된 LoRaWAN 메시지 프레임이 획득된다.
단계 726에서, 고정-비트-매칭 CBH에 대응하는 (장치 집단의) 전송 단말 장치가 식별된다. 본원에 개시된 하나 이상의 실시예들에서, 헤더 마스크, CPH 및 CBH는 단말 장치에 따라 다르기 때문에(위에서 논의됨), 전술한 정보 중 하나 이상이 전송 단말 장치로 역추적될 수 있다. 본원에 개시된 일 실시예에서, 단말 장치와 전술한 정보 사이의 연관은 네트워크 호스트상에서 로컬로 추적되거나 통합될 수 있다. 이러한 실시예에서, 전송 단말 장치의 식별은 고정-비트-매칭 CBH를 포함하는 로컬로 저장된 기록 또는 엔트리를 찾는 것을 수반할 수 있다. 특정 기록이나 엔트리를 식별할 때, 전송 단말 장치는 특정 기록 또는 엔트리와 연관되어있는 것으로 발견될 수 있다.
단계 728에서, (단계 726에서 식별된) 전송 단말 장치가 등록된 애플리케이션 시스템이 식별된다. 본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트는 어떤 세트의 단말 장치들이 어떤 애플리케이션 시스템에 의해 소유/제어될 수 있는지를 상세히 설명하는 연관성(association)을 추적 또는 통합하는 기능을 포함할 수 있다. 이어서, 이들 연관을 이용하여, (단계 726에서 식별된) 전송 단말 장치를 소유하거나 제어하는 애플리케이션 시스템이 식별될 수 있다. 단계 730에서, (단계 724에서 획득된) 언블라인딩된 LoRaWAN 메시지 프레임은 (단계 728에서 식별된) 애플리케이션 시스템으로 전송된다. 본원에 개시된 하나 이상의 실시예들에서, 네트워크 호스트 및 애플리케이션 시스템이 위치하는 백홀 네트워크가 TCP/IP를 이용할 수 있기 때문에, 언블라인딩된 LoRaWAN 메시지 프레임은 전송 전에 MAC 프레임에 캡슐화될 수 있다.
도 8은 본원에 개시된 하나 이상의 실시예들에 따라 단말 장치 동작 관리를 최적화하기위한 방법을 설명하는 흐름도를 도시한다. 본원에 개시된 하나 이상의 실시예들에서, 다음 방법은 독점적으로 단말 장치에 의해서만 수행될 수 있다.
단계 800에서, 하나 이상의 단말 장치 동작 파라미터(들)가 모니터링된다. 본원에 개시된 일 실시예에서, 단말 장치 동작 파라미터는 임의의 관찰 가능한 물리적 특성, 측정 가능한 물리적 특성, 또는 이들의 조합일 수 있다. 이러한 실시예에서, 전술한 특성들 중 하나 이상은 단말 장치 상에 존재하는 (또는 단말 장치에 동작 가능하게 연결된) 하나 이상의 센서(들)에 의해 측정될 수 있다. 관찰 가능하고 측정 가능한 물리적 특성으로서의 단말 장치 동작 파라미터의 예들은 전기적 특성들(예를 들어, 전하, 커패시턴스, 전기장, 전기 임피던스, 전력, 자속), 온도, 위치, 방사성 품질, 강도, 주파수, 압력, 그리고 속도를 포함하지만, 이에 제한되지는 않는다. 본원에 개시된 다른 실시예에서, 단말 장치 동작 파라미터는 하나 이상의 관찰 가능한/측정 가능한 물리적 특성들로부터 도출된 메트릭(metric)일 수 있다. 메트릭은 예를 들어 임계값, 제약 조건(constraint), 범위, 지속 시간, 최댓값, 최솟값 및 평균과 같은 정성적 정보(qualitative information)를 나타낼 수 있다. 메트릭으로서의 단말 장치 동작 파라미터의 예들은 데이터 속도, 프로세서 사용, 하드웨어 온도, 센서 허용 오차, 지연시간, 메시지 프레임 손실, 사고 대응(incident response) 및 취약성 완화를 포함하지만, 이에 제한되지는 않는다.
단계 802에서, (단계 800에서 모니터링 된) 하나 이상의 단말 장치 동작 파라미터(들)가 설정 기준에 대해 검사된다. 본원에 개시된 일 실시예에서, 설정 기준은 제조 공정 동안 제공될 수 있는 정적 조건 또는 표준을 포함할 수 있다. 본원에 개시된 다른 실시예에서, 설정 기준은 동적 조건 또는 표준을 포함할 수 있으며, 이는 예를 들어 소프트웨어/펌웨어 업데이트, 구성 업데이트 메시지들(예를 들어, 도 9 참고) 및 자기-개선/학습 방식에 따라 변경될 수 있다. 예로서, (단말 장치 동작 파라미터로서) 위치의 관찰 가능한/측정 가능한 물리적 특성에 대한 동적 설정 기준은 지오펜스(geofence)(즉, 단말 장치가 특정 영역에 진입하거나 또는 떠날 때, 또는 단말 장치가 기준으로부터 특정 범위 내에 있거나 이를 벗어날 때 응답을 트리거할 수 있는 가상의 지리적 경계)에 의해 제공되는 제약일 수 있다. 다른 예로서, (단말 장치 동작 파라미터로서) 전원의 평생(lifetime) 에너지 처리량의 메트릭에 대한 정적 설정 기준은 수명 내의 모든 사이클 동안 전원으로 충전되고 전원으로부터 배출될 수 있는 총 에너지량(와트시 단위)을 지정하는 사전-설정된 하드실링(hard ceiling) 또는 최댓값일 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 설정 기준은 예를 들어 에너지 보존, 메시지 프레임 전송 성공, 지속된 프라이버시 및 보안, 그리고 다른 성능 관련 목표와 같은 글로벌 단말 장치 목표와 부합할 수 있다.
단계 804에서, 설정 기준(이 설정 기준에 대해 하나 이상의 단말 장치 동작 파라미터(들)가 검사됨)이 충족되는지에 대한 판단이 이루어진다. 설정 기준이 충족되면, 프로세스는 단계 806으로 진행한다. 한편, 설정 기준이 충족되지 않으면, 프로세스는 종료된다.
단계 806에서, (단계 804에서) 설정 기준이 하나 이상의 단말 장치 동작 파라미터(들)에 의해 충족된다고 판단시, 하나 이상의 단말 장치 구성 파라미터(들)가 조정된다. 본원에 개시된 하나 이상의 실시예들에서, 단말 장치 구성 파라미터는 단말 장치의 동작에 영향을 미칠 수 있는 제어 변수일 수 있다. 또한, 본원에 개시된 하나 이상의 실시예들에서, 하나 이상의 구성 파라미터(들)는 단말 장치 동작들이 전역(global) 단말 장치 목표(전술됨)에 부합하는 것을 유지하도록 조정될 수 있다. 단말 장치 구성 파라미터의 예들은 (통신 범위, 메시지 지속 시간 및 배터리 수명에 영향을 줄 수 있는) 데이터 속도 및 무선 주파수 채널을 포함하지만 이에 제한되지는 않는다. 본원에 개시된 하나 이상의 다른 실시예들에서, 상기 (단계 804의) 판단에 응답하여, 하나 이상의 동적 설정 기준이 조정될 수 있다. 전술한 구성 파라미터(들) 또는 설정 기준에 대한 조정들은 단말 장치 작업 최적화에 관한 것일 수 있다.
도 9는 본원에 개시된 하나 이상의 실시예들에 따라 네트워크 동작 관리를 최적화하기 위한 방법을 설명하는 흐름도를 도시한다. 본원에 개시된 하나 이상의 실시예들에서, 다음 방법은 네트워크 호스트에 의해 독점적으로 수행될 수 있다.
단계 900에서, 하나 이상의 네트워크 동작 파라미터(들)가 모니터링된다. 본원에 개시된 일 실시예에서, 네트워크 동작 파라미터는 하나 이상의 관찰 가능한/측정 가능한 물리적 특성들(전술됨)로부터 도출된 임의의 성능 메트릭일 수 있다. 메트릭은 예를 들어 임계값, 제약 조건, 범위, 지속 시간, 최댓값, 최솟값 및 평균과 같은 정성적 정보를 나타낼 수 있다. 성능 메트릭으로서의 네트워크 동작 파라미터의 예들은 대역폭 가용성(bandwidth availability), 트래픽 레벨, 패킷 손실, 상대 링크 로딩, 지연 시간, 스루풋, 엔드-투-엔드 지연, 지터 및 다른 기존 네트워크 성능 측정들/메트릭을 포함하지만 이에 제한되지는 않는다.
단계 902에서, (단계 900에서 모니터링된) 하나 이상의 네트워크 동작 파라미터(들)는 설정 기준에 대해 검사된다. 본원에 개시된 일 실시예에서, 설정 기준은 네트워크의 초기 배치 동안 제공되었을 수 있는 정적 조건 또는 표준을 포함할 수 있다. 본원에 개시된 다른 실시예에서, 설정 기준은 동적 조건 또는 표준을 포함할 수 있으며, 이는 예를 들어 소프트웨어/펌웨어 업데이트 및 자기 개선(self-improvement)/학습(learning) 방법에 따라 변경될 수 있다. 본원에 개시된 하나 이상의 실시예들에서, 설정 기준은 예를 들어 가동 시간(uptime) 및 스루풋 최대화, 지연시간 및 에러율 최소화 그리고 다른 네트워크 성능 관련 목표와 같은 전역 네트워크 목표에 부합할 수 있다.
단계 904에서, 설정 기준(이 설정 기준에 대해 하나 이상의 네트워크 동작 파라미터(들)가 검사됨)이 충족되는지에 대한 판단이 이루어진다. 설정 기준이 충족되면, 프로세스는 단계 906으로 진행한다. 한편, 설정 기준이 충족되지 않으면, 프로세스는 종료된다.
단계 906에서, (단계 904에서) 설정 기준이 하나 이상의 네트워크 동작 파라미터(들)에 의해 충족된다고 판단시, 하나 이상의 네트워크 구성 파라미터(들)가 조정된다. 본원에 개시된 하나 이상의 실시예들에서, 네트워크 구성 파라미터는 네트워크의 동작에 영향을 미칠 수 있는 제어 변수일 수 있다. 또한, 본원에 개시된 하나 이상의 실시예들에서, 하나 이상의 네트워크 구성 파라미터(들)는 네트워크 동작들이 전역(global) 네트워크 목표(전술됨)에 부합하는 것을 유지하도록 조정될 수 있다. 본원에 개시된 하나 이상의 다른 실시예들에서, 상기 (단계 904의) 판단에 응답하여, 하나 이상의 동적 설정 기준이 조정될 수 있다. 전술한 네트워크 구성 파라미터(들) 또는 설정 기준에 대한 조정들은 네트워크 동작 최적화에 관한 것일 수 있다.
단계 908에서, 네트워크 구성 파라미터(들) 또는 설정 기준에 대한 조정은 단말 장치가 준수해야 하는 명령들/커맨드들로 변환될 수 있다. 예를 들어, 네트워크 호스트는 임의의 주어진 시간에 네트워크가 경험할 수 있는 부하의 양에 제한을 두기 위해 특정 세트의 네트워크 구성 파라미터(들) 또는 설정 기준을 조정할 수 있다. 본원에 개시된 일 실시예에서, 조정은 데이터 충돌 및 프레임 손실을 초래할 수 있는 네트워크 용량의 과부하를 방지하기 위해 수행될 수 있다. 이어서, 네트워크 호스트는, 이러한 대책을 적용할 때, 네트워크의 부하를 허용 오차 내로 유지하기 위해 단말 장치가 준수해야하는 명령들을 공식화(formulating)할 수 있다. 이 예에서, 명령들은 단말 장치들에게 그것들의 데이터 속도, 전송 전력, 반복 속도, 무선 주파수 채널 또는 이들의 조합을 조정할 것을 명령하는 것을 포함할 수 있다.
단계 908로 진행하여, 하나 이상의 구성 업데이트 메시지(들)가 생성된다. 본원에 개시된 하나 이상의 실시예들에서, 구성 업데이트 메시지는 단말 장치에 의해 실행될 수 있는 명령들의 세트 또는 컴퓨터 판독 가능 프로그램 코드의 적어도 일부일 수 있다. 본원에 개시된 일 실시예에서, 구성 업데이트 메시지(들)는 장치 집단(즉, 네트워크 호스트에 동작 가능하게(또는 통신 가능하게) 연결된 단말 장치들의 세트)의 서브세트를 목표로 할 수 있다. 본원에 개시된 다른 실시예에서, 구성 업데이트 메시지(들)는 전체 장치 집단을 목표로 할 수 있다. 또한, 본원에 개시된 일 실시예에서, 구성 업데이트 메시지(들)는 각각 동일한 전역 명령들을 포함할 수 있다. 본원에 개시된 다른 실시예에서, 구성 업데이트 메시지(들)는 각각 구성 업데이트 메시지(들)가 목표로 하는 단말 장치에 특정한 고유 명령들을 포함할 수 있다. 게다가, 본원에 개시된 하나 이상의 실시예들에서, 구성 업데이트 메시지는 단말 장치 구성 파라미터(들)와 관련된 하나 이상의 단말 장치 구성 파라미터(들)에 대한 식별자(들)를 하나 이상의 대응 설정 값(들)과 함께 포함할 수 있다.
단계 910에서, (단계 908에서 생성된) 구성 업데이트 메시지(들)는 하나 이상의 단말 장치(들)를 향해 전송된다. 본원에 개시된 일 실시예에서, 구성 업데이트 메시지(들)는 네트워크 작업의 최적화에 영향을 주기 위해 필요한 하나 이상의 단말 장치(들)를 향해 전송될 수 있다. 네트워크 호스트는 장치 집단 내의 각 단말 장치의 현재 상태를 추적하거나 통합할 수 있는 것에 기초하여 어떤 단말 장치들을 타겟팅할 것인지를 결정하는 기능을 포함할 수 있다.
본 개시서의 실시예들은 컴퓨팅 시스템에서 구현될 수 있다. 모바일, 데스크탑, 서버, 라우터, 스위치, 내장 장치 또는 기타 유형의 하드웨어의 임의의 조합이 사용될 수 있다. 예를 들어, 도 10a에 도시된 바와 같이, 컴퓨팅 시스템(1000)은 하나 이상의 컴퓨터 프로세서들(1002), 비-영구적 스토리지(1004)(예를 들어, 랜덤 액세스 메모리 (RAM), 캐시 메모리와 같은 휘발성 메모리), 영구적 스토리지(1006)(예를 들어, 하드 디스크, CD (compact disk) 드라이브 또는 DVD (digital versatile disk) 드라이브와 같은 광학 드라이브, 플래시 메모리 등), 통신 인터페이스 (1012)(예를 들어, 블루투스 인터페이스, 적외선 인터페이스, 네트워크 인터페이스, 광학 인터페이스 등) 및 기타 여러 요소들 및 기능들을 포함할 수 있다.
컴퓨터 프로세서(들)(1002)는 명령을 처리하기위한 집적 회로일 수 있다. 예를 들어, 컴퓨터 프로세서(들)는 프로세서의 하나 이상의 코어들 또는 마이크로 코어들일 수 있다. 컴퓨팅 시스템(1000)은 또한 터치스크린, 키보드, 마우스, 마이크로폰, 터치패드, 전자 펜, 또는 임의의 다른 유형의 입력 장치와 같은 하나 이상의 입력 장치들(1010)을 포함할 수 있다.
통신 인터페이스(1012)는 컴퓨팅 시스템(1000)을 네트워크(미도시)(예를 들어, 근거리 통신망(LAN), 인터넷과 같은 광역 통신망(WAN), 모바일 네트워크, 또는 임의의 다른 유형의 네트워크)에, 또는 다른 컴퓨팅 장치와 같은 다른 장치에 연결하기위한 집적 회로를 포함할 수 있다.
또한, 컴퓨팅 시스템(1000)은 스크린(예를 들어, 액정 디스플레이(LCD), 플라즈마 디스플레이, 터치스크린, 음극선 관(cathode ray tube; CRT) 모니터, 프로젝터, 또는 다른 디스플레이 장치), 프린터, 외부 스토리지 또는 임의의 다른 출력 장치와 같은 하나 이상의 출력 장치들(1008)을 포함할 수 있다. 하나 이상의 출력 장치는 입력 장치(들)와 동일하거나 상이할 수 있다. 입력 및 출력 장치(들)는 컴퓨터 프로세서(들)(1002), 비-영구적 스토리지(1004) 및 영구적 스토리지(1006)에 로컬로 또는 원격으로 연결될 수 있다. 많은 다른 유형의 컴퓨팅 시스템들이 존재하며, 전술한 입력 및 출력 장치(들)는 다른 형태를 취할 수 있다.
본 개시서의 실시예들을 수행하기위한 컴퓨터 판독 가능한 프로그램 코드 형태의 소프트웨어 명령들은 CD, DVD, 저장 장치, 디스켓, 테이프, 플래시 메모리, 물리적 메모리 또는 임의의 다른 컴퓨터 판독 가능 저장 매체와 같은 비 일시적 컴퓨터 판독 가능 매체에 전체적으로 또는 부분적으로, 일시적으로 또는 영구적으로 저장될 수 있다. 구체적으로, 소프트웨어 명령들은 프로세서(들)에 의해 실행될 때 본 개시서의 하나 이상의 실시예들을 수행하도록 구성된 컴퓨터 판독 가능 프로그램 코드에 대응할 수 있다.
도 10a의 컴퓨팅 시스템(1000)은 네트워크에 연결되거나 네트워크의 일부일 수 있다. 예를 들어, 도 10b에 도시된 바와 같이, 네트워크(1020)는 다수의 노드들(예를 들어, 노드 X(1022), 노드 Y(1024))을 포함할 수 있다. 각각의 노드는 도 10a에 도시된 컴퓨팅 시스템과 같은 컴퓨팅 시스템에 대응할 수 있으며, 또는 조합된 노드들의 그룹은 도 10a에 도시된 컴퓨팅 시스템에 대응할 수 있다. 예로서, 본 개시서의 실시예들은 다른 노드들에 연결된 분산 시스템의 노드에서 구현될 수 있다. 다른 예로서, 본 개시서의 실시예들은 다수의 노드들을 갖는 분산 컴퓨팅 시스템에서 구현될 수 있으며, 여기서 본 개시서의 각 부분은 분산 컴퓨팅 시스템 내의 상이한 노드 상에 위치될 수 있다. 또한, 전술한 컴퓨팅 시스템(1000)의 하나 이상의 요소들은 원격 위치에 위치하고 네트워크를 통해 다른 요소에 연결될 수 있다.
도 10b에 도시되지 않았지만, 노드는 백플레인(backplane)을 통해 다른 노드들에 연결된 서버 섀시(server chassis)의 블레이드(blade)에 대응할 수 있다. 다른 예로서, 노드는 데이터 센터의 서버에 대응할 수 있다. 다른 예로서, 노드는 공유 메모리 또는 자원을 갖는 컴퓨터 프로세서 또는 컴퓨터 프로세서의 마이크로-코어에 대응할 수 있다.
네트워크(1020)의 노드들(예를 들어, 노드 X(1022), 노드Y (1024))은 클라이언트 장치(1026)에 서비스를 제공하도록 구성될 수 있다. 예를 들어, 노드들은 클라우드 컴퓨팅 시스템의 일부일 수 있다. 노드들은 클라이언트 장치(1026)로부터 요청을 수신하고 클라이언트 장치(1026)에 응답을 전송하는 기능을 포함할 수 있다. 클라이언트 장치(1026)는 도 10a에 도시된 컴퓨팅 시스템과 같은 컴퓨팅 시스템일 수 있다. 또한, 클라이언트 장치(1026)는 본 개시서의 하나 이상의 실시예들의 전부 또는 일부를 포함하거나 수행할 수 있다.
도 10a 및 도 10b에 설명된 컴퓨팅 시스템 또는 컴퓨팅 시스템들의 그룹은 본원에 개시된 다양한 동작들을 수행하는 기능을 포함할 수 있다. 예를 들어, 컴퓨팅 시스템(들)은 동일하거나 상이한 시스템상에서 프로세스들 간의 통신을 수행할 수 있다. 일부 형태의 능동 또는 수동 통신을 사용하는 다양한 메커니즘은 동일한 장치에서 프로세스 간 데이터 교환을 용이하게 할 수 있다. 이러한 프로세스 간 통신을 대표하는 예들은 파일, 신호, 소켓, 메시지 대기열, 파이프라인(pipeline), 세마포어(semaphore), 공유 메모리, 메시지 전달 및 메모리 매핑된 파일의 구현을 포함하지만, 이에 한정되지는 않는다. 이러한 비-한정적 예들 중 몇 가지에 관한 추가 세부 사항이 아래에 제공된다.
클라이언트-서버 네트워킹 모델에 기초하여, 소켓들은 인터페이스 또는 통신 채널 엔드-포인트 역할을 하여, 동일한 장치상의 프로세스들 간의 양방향 데이터 전송을 가능하게 할 수 있다. 맨 먼저, 클라이언트-서버 네트워킹 모델에 따라, 서버 프로세스(예를 들어, 데이터를 제공하는 프로세스)는 제1 소켓 객체를 생성할 수 있다. 다음으로 서버 프로세스는 제1 소켓 객체를 바인딩하여 제1 소켓 객체를 고유 한 이름 또는 주소와 연관시킨다. 제1 소켓 객체를 생성 및 바인딩한 후, 서버 프로세스는 하나 이상의 클라이언트 프로세스들(예를 들어, 데이터를 찾는 프로세스들)로부터 들어오는(incoming) 연결 요청을 기다리고 리스닝(listening)한다. 이 시점에서, 클라이언트 프로세스가 서버 프로세스로부터 데이터를 획득하려고 할 때, 클라이언트 프로세스는 제2 소켓 객체를 작성하여 시작합니다. 클라이언트 프로세스는 적어도 제2 소켓 객체, 그리고 제1 소켓 객체와 관련된 고유한 이름 또는 주소를 포함하는 연결 요청을 생성하도록 진행한다. 그런 다음 클라이언트 프로세스는 연결 요청을 서버 프로세스에 전송한다. 가용성에 따라, 서버 프로세스는 연결 요청을 수락하여 클라이언트 프로세스와 통신 채널을 설정할 수 있으며, 또는 다른 작업들을 처리 중인 서버 프로세스는 서버 프로세스가 준비될 때까지 연결 요청을 버퍼에 대기시킬 수 있다. 설정된 연결은 통신이 시작될 수 있음을 클라이언트 프로세스에 알려준다. 이에 응답하여, 클라이언트 프로세스는 클라이언트 프로세스가 획득하고자하는 데이터를 지정하는 데이터 요청을 생성할 수 있다. 데이터 요청은 이어서 서버 프로세스에 전송된다. 데이터 요청을 수신하면, 서버 프로세스는 요청을 분석하고 요청된 데이터를 수집한다. 마지막으로, 서버 프로세스는 적어도 요청된 데이터를 포함하는 응답을 생성하고 그 응답을 클라이언트 프로세스에 전송한다. 데이터는 보다 일반적으로 데이터 그램 또는 문자 스트림(예를 들어, 바이트)으로서 전송될 수 있다.
공유 메모리는 데이터가 다수의 프로세스들에 의해 통신되거나 액세스될 수있는 메커니즘을 실체화(substantiating)하기 위한 가상 메모리 공간의 할당을 지칭한다. 공유 메모리를 구현할 때 초기화 프로세스는 먼저 영구적 또는 비-영구적 스토리지에 공유 가능한 세그먼트를 만든다. 생성 후, 초기화 프로세스는 공유 가능한 세그먼트를 마운팅(mounting)하고, 이어서 공유 가능한 세그먼트를 초기화 프로세스와 연관된 주소 공간에 매핑한다. 마운팅 후, 초기화 프로세스는 공유 가능한 세그먼트에 데이터를 기록하고 공유 가능한 세그먼트로부터 데이터를 판독할 수 있는 하나 이상의 허가된 프로세스들을 식별하고 액세스 권한을 부여하는 단계로 진행한다. 한 프로세스에 의해 공유 가능한 세그먼트의 데이터를 변경하면 공유 가능한 세그먼트에 연결된 다른 프로세스들에도 즉시 영향을 줄 수 있다. 또한, 허가된 프로세스들 중 하나가 공유 가능 세그먼트에 액세스할 때, 공유 가능한 세그먼트는 그 허가된 프로세스의 주소 공간에 매핑된다. 종종, 임의의 주어진 시간에, 초기화 프로세스 이외에, 오직 하나의 허가된 프로세스만이 공유 가능한 세그먼트를 마운팅할 수 있다.
본 개시서의 범위를 벗어나지 않으면서, 프로세스들 사이에서, 본 출원에서 설명된 다양한 데이터와 같은 데이터를 공유하기 위해 다른 기술들이 사용될 수 있다. 프로세스는 동일하거나 상이한 애플리케이션의 일부일 수 있으며 동일하거나 상이한 컴퓨팅 시스템에서 실행될 수 있다.
프로세스들 사이에서 데이터를 공유하는 대신에 또는 그에 부가하여, 본 개시서의 하나 이상의 실시예들을 수행하는 컴퓨팅 시스템은 사용자로부터 데이터를 수신하는 기능을 포함할 수 있다. 예를 들어, 하나 이상의 실시예들에서, 사용자는 사용자 장치상의 그래픽 사용자 인터페이스(GUI)를 통해 데이터를 제출할 수 있다. 데이터는 사용자가 GUI를 통해 하나 이상의 GUI 위젯을 선택하거나 터치 패드, 키보드, 마우스 또는 다른 입력 장치를 사용하여 GUI 위젯에 텍스트 및 다른 데이터를 삽입함으로써 제출될 수 있다. 특정 항목을 선택하는 것에 응답하여, 특정 항목에 관한 정보는 컴퓨터 프로세서에 의해 영구적 또는 비-영구적 저장소로부터 획득될 수 있다. 사용자에 의한 항목 선택시, 특정 항목에 관한 획득된 데이터의 내용은 사용자의 선택에 응답하여 사용자 장치에 디스플레이될 수 있다.
다른 예로서, 특정 항목에 관한 데이터를 획득하기 위한 요청은 네트워크를 통해 사용자 장치에 동작 가능하게 연결된 서버에 전송될 수 있다. 예를 들어, 사용자는 사용자 장치의 웹 클라이언트 내에서 URL(uniform resource locator) 링크를 선택함으로써, HTTP(Hypertext Transfer Protocol) 또는 다른 프로토콜 요청이 URL과 연관된 네트워크 호스트에 전송되는 것을 개시할 수 있다. 요청에 응답하여, 서버는 특정한 선택된 항목에 관한 데이터를 추출하고 요청을 개시한 장치에 데이터를 발송할 수 있다. 사용자 장치가 특정 항목에 관한 데이터를 수신하면, 특정 항목에 관한 수신된 데이터의 내용은 사용자의 선택에 응답하여 사용자 장치에 디스플레이될 수 있다. 상기 예에 더하여, URL 링크를 선택한 후 서버로부터 수신된 데이터는 웹 클라이언트에 의해 랜더링되고 사용자 장치 상에 디스플레이될 수 있는 HTML(Hyper Text Markup Language)에 웹 페이지를 제공할 수 있다.
예를 들어 전술한 기술을 사용하여 또는 스토리지로부터 데이터가 획득되면, 본 개시서의 하나 이상의 실시예들을 수행하는 컴퓨팅 시스템은 획득된 데이터로부터 하나 이상의 데이터 항목들을 추출할 수 있다. 예를 들어, 추출은 도 10a의 컴퓨팅 시스템에 의해 다음과 같이 수행될 수 있다. 먼저, 데이터의 구성 패턴(예를 들어, 문법, 스키마(schema), 레이아웃)이 결정되며, 이러한 결정은 다음 중 하나 이상에 기초할 수 있다 : 위치(예를 들어, 비트 또는 열 위치, 데이터 스트림 내의 N번째 토큰 등), 속성(속성이 하나 이상의 값들과 연관되는 경우), 또는 (중첩된(nested) 패킷 헤더들 또는 중첩된 문서 섹션들에서와 같이 서로 다른 레벨의 세부 사항의 노드들의 계층들로 구성된) 계층적/트리 구조. 그 후, 처리되지 않은 원시 데이터 심볼 스트림은 조직 패턴(organizing pattern)과 관련하여 토큰들의 스트림(또는 계층화 된 구조)으로 파싱(parsing)된다(각 토큰은 연관된 토큰 "유형"을 가질 수 있음).
다음으로, 추출 기준은 토큰 스트림 또는 구조로부터 하나 이상의 데이터 항목들을 추출하는데 사용되며, 여기서 추출 기준은 하나 이상의 토큰들(또는 계층 구조로부터 노드들)을 추출하기 위해 조직 패턴에 따라 처리된다. 위치 기반 데이터의 경우, 추출 기준에 의해 식별된 위치(들)에서 토큰(들)이 추출된다. 속성/값-기반 데이터의 경우, 추출 기준을 만족하는 속성(들)과 연관된 토큰(들) 또는 노드(들)가 추출된다. 계층적(hierarchical)/계층화된(layered) 데이터의 경우, 추출 기준과 매칭하는 노드(들)와 연관된 토큰(들)이 추출된다. 추출 기준은 식별자 문자열만큼 간단하거나 구조화된 데이터 저장소(데이터 저장소는 XML과 같은 데이터베이스 스키마 또는 데이터 형식에 따라 구성될 수 있음)에 제공되는 쿼리일 수 있다.
추출된 데이터는 컴퓨팅 시스템에 의한 추가 처리를 위해 사용될 수 있다. 예를 들어, 도 10a의 컴퓨팅 시스템은 본 개시서의 하나 이상의 실시예들을 수행하는 동안 데이터 비교를 수행할 수 있다. 데이터 비교는 둘 이상의 데이터 값들(예를 들어, A, B)을 비교하는데 사용될 수 있다. 예를 들어, 하나 이상의 실시예들은 A> B, A = B, A! = B, A <B 등을 판단할 수 있다. 비교는 비교와 관련된 연산을 지정하는 A, B 및 연산 코드(opcode)를 산술 논리 유닛(arithmetic logic unit; ALU) (즉, 2 개의 데이터 값들에 대해 산술 또는 비트 논리 연산을 수행하는 회로)에 제출함으로써 수행될 수 있다. ALU는 연산의 수치 결과 또는 수치 결과와 관련된 하나 이상의 상태 플래그를 출력한다. 예를 들어, 상태 플래그는 수치 결과가 양수, 음수, 0 등인지 여부를 나타낼 수 있다. 적절한 연산 코드를 선택한 다음 수치 결과 또는 상태 플래그를 읽음으로써 비교가 실행될 수 있다. 예를 들어, A>B인지 여부를 결정하기 위해, B가 A로부터 차감될 수 있고(즉, A-B), 상태 플래그가 판독되어 결과가 긍정적인지(즉, A> B이면 A - B > 0) 판단할 수 있다. 하나 이상의 실시예들에서, B는 임계값으로 간주될 수 있고, ALU를 사용하여 결정된 바와 같이 A = B 또는 A> B 인 경우 A는 임계값을 만족하는 것으로 간주된다. 본 개시서의 하나 이상의 실시예들에서, A와 B는 벡터들일 수 있으며 A와 B를 비교하려면 벡터 A의 첫 번째 요소를 벡터 B의 첫 번째 요소와 비교하고, 벡터 A의 두 번째 요소와 벡터 B의 두 번째 요소를 비교해야한다. 하나 이상의 실시예들에서, A 및 B가 스트링인 경우, 스트링들의 이진 값들이 비교될 수 있다.
도 10a의 컴퓨팅 시스템은 데이터 저장소를 구현하거나 이에 연결될 수 있다. 예를 들어 한 가지 유형의 데이터 저장소는 데이터베이스이다. 데이터베이스는 데이터 검색, 수정, 재구성 및 삭제가 용이하도록 구성된 정보 모음이다. 데이터베이스 관리 시스템(database management system; DBMS)은 사용자가 데이터베이스를 정의, 생성, 쿼리, 업데이트 또는 관리하기 위한 인터페이스를 제공하는 소프트웨어 애플리케이션이다.
사용자 또는 소프트웨어 애플리케이션은 명령문(statement) 또는 쿼리를 DBMS에 제출할 수 있다. 그런 다음 DBMS는 명령문을 해석한다. 명령문은 정보를 요청하고, 명령문을 업데이트하고, 명령문을 작성하고, 명령문을 삭제하는 등의 select 문일 수 있다. 또한 명령문은 데이터 또는 데이터 컨테이너(데이터베이스, 테이블, 레코드, 열, 보기 등), 식별자(들), 조건들(비교 연산자들), 함수(예를 들어, 조인(join), 전체 조인(full join), 카운트, 평균 등), 정렬(예를 들어, 오름차순, 내림차순) 또는 기타를 지정하는 파라미터들을 포함할 수 있다. DBMS는 명령문을 실행할 수 있다. 예를 들어, DBMS는 명령문에 응답하기 위해, 읽기, 쓰기, 삭제 또는 이들의 조합을 위해, 메모리 버퍼, 파일의 레퍼런스 또는 인덱스에 액세스할 수 있다. DBMS는 영구적 또는 비-영구적 스토리지에서 데이터를 로드하고 쿼리에 응답하기 위해 계산을 수행할 수 있다. DBMS는 결과를 사용자 또는 소프트웨어 애플리케이션에 반환할 수 있다.
도 10a의 컴퓨팅 시스템은 비교 및 다른 처리의 결과와 같은 미가공 또는 처리된 데이터를 제시하는 기능을 포함할 수 있다. 예를 들어, 데이터를 제시하는 것은 다양한 제시 방법을 통해 달성될 수 있다. 구체적으로, 데이터는 컴퓨팅 장치에 의해 제공되는 사용자 인터페이스를 통해 제시될 수 있다. 사용자 인터페이스는 컴퓨터 모니터 또는 핸드 헬드 컴퓨터 장치상의 터치스크린과 같은 디스플레이 장치 상에 정보를 디스플레이하는 GUI를 포함할 수 있다. GUI는 어떤 데이터가 도시되는지뿐만 아니라 데이터가 사용자에게 어떻게 제공되는지를 구성하는 다양한 GUI 위젯들을 포함할 수 있다. 또한, GUI는 데이터를 사용자에게 직접 제공할 수 있는데, 예를 들어 텍스트를 통해 데이터를 실제 데이터 값으로 제시하거나, 또는 예를 들어 데이터 모델을 시각화하는 것을 통해, 컴퓨팅 장치에 의해 데이터를 데이터의 시각적 표현으로 렌더링할 수 있다.
예를 들어, GUI는 먼저 특정 데이터 객체가 GUI 내에 제시되도록 요청하는 소프트웨어 애플리케이션으로부터 통지를 얻을 수 있다. 다음으로, GUI는, 예를 들어 데이터 객체 유형을 식별하는 데이터 객체 내의 데이터 속성으로부터 데이터를 획득함으로써, 특정 데이터 객체와 관련된 데이터 객체 유형을 결정할 수 있다. 그 후, GUI는 그 데이터 객체 유형을 디스플레이하기 위해 지정된 임의의 규칙들(예를 들어 데이터 객체 클래스를 위한 소프트웨어 프레임 워크에 의해 또는 그 데이터 객체 유형을 제시하기 위해 GUI에 의해 정의된 임의의 로컬 파라미터에 따라 지정된 규칙들)을 결정할 수 있다. 마지막으로, GUI는 특정 데이터 객체로부터 데이터 값을 획득하고 그 데이터 객체 유형에 대한 지정된 규칙에 따라 디스플레이 장치 내에서 데이터 값들의 시각적 표현을 렌더링할 수 있다.
데이터는 다양한 오디오 방법들을 통해 제공될 수도 있다. 특히, 데이터는 오디오 포맷으로 렌더링되고 컴퓨팅 장치에 동작 가능하게 연결된 하나 이상의 스피커들을 통해 사운드로 제공될 수 있다.
햅틱 방법들을 통해 데이터가 사용자에게 제시될 수도 있다. 예를 들어, 햅틱 방법들은 컴퓨팅 시스템에 의해 생성된 진동 또는 다른 물리적 신호들을 포함할 수 있다. 예를 들어, 데이터는 데이터를 전달하기 위해 미리 정의된 진동의 지속 시간 및 강도를 갖는 핸드 헬드 컴퓨터 장치에 의해 생성된 진동을 사용하여 사용자에게 제시될 수 있다.
전술한 기능 설명은 도 10a의 컴퓨팅 시스템 및 도 10b의 노드들 및/또는 클라이언트 장치에 의해 수행되는 기능들의 몇몇 예들만을 제시한다. 다른 기능들은 본 개시서의 하나 이상의 실시예들을 사용하여 수행될 수 있다.
본 개시서는 제한된 수의 실시예들에 대하여 설명되었지만, 본 개시서의 이점을 갖는 당업자는 본원에 개시된 바와 같이 본 개시서의 범위를 벗어나지 않는 다른 실시예들이 고안될 수 있음을 이해할 것이다. 따라서, 본 개시서의 범위는 첨부된 청구범위에 의해서만 제한되어야한다.
무선 통신 기능이 있는 모바일 장치들은 일부 네트워크 운영자에 의해 운영되는 메시지 릴레이를 위한 일부 네트워크 인프라(생략해서 네트워크)를 사용하여 일부 애플리케이션 백엔드 서비스로 데이터를 전송하기 위해 메시지를 업스트림으로 정기적으로 그리고 불규칙적으로 종종 전송한다(예를 들어, 도 11 참조). 경우에 따라 통신은 단방향이다. 즉, 장치는 애플리케이션 백엔드 서비스로부터 다운스트림의 메시지를 절대 수신하지 않고, 애플리케이션 백엔드 서비스로 업스트림의 상이한 유형의 데이터를 발송하기만 한다. 다른 경우에는, 장치와 애플리케이션 백엔드는 업스트림 및 다운 스트림 모두의 메시지들을 교환한다. 이에 의해 업스트림으로 전송되는 데이터는 예를 들어 온도, 습도, 가속도 또는 GPS 위치와 같은 센서 판독 값일 수 있다. 다운 스트림 데이터는 액추에이터 명령 또는 장치 설정일 수 있다.
백엔드 애플리케이션이 장치를 수신된 데이터 소스로 올바르게 연관시키려면, 업스트림 메시지들은 일반적으로, 실제 애플리케이션 페이로드 옆에, 가능하다면 일반적으로 헤더라고 하는, 시퀀스 카운터 및 플래그와 같은 메타 데이터와 일부 고유한 네트워크 주소와 결합하여 고유한 장치 주소를 포함한다. 헤더의 일부 필드들에 대한 값들은 고정되어 있지만 다른 값들은 일부 알고리즘(예를 들어, 간단한 증분(simple increment))에 따라 또는 일부 장치 또는 환경 상태에 따라 달라질 수 있다. 무결성 검사를 위해, 메시지들은 일반적으로 트레일러(Trailer)라고 하는 일부 암호화 메시지 무결성 코드(MIC)를 포함할 수 있다.
LoRaWAN 프로토콜 사양을 기반으로 하는 LPWAN (Low-Power Wide-Area Networks)과 같은 무선 인프라에서, 헤더와 트레일러가 일반적으로 평문(암호화지 않음)으로 전송되므로, 무선 인프라는 고유한 장치 주소 및 장치와 장치를 제공하는 동안 제시된 일부 애플리케이션 백엔드 간의 일부 소유자 관계에 기초하여 의도된 수신기로 업스트림 메시지를 중계할 수 있다. 이에 의해 네트워크 인프라를 제어하는 네트워크 운영자는 일반적으로 단일 네트워크 운영자에 의해 실행되고 많은 애플리케이션 소유자들에 의해 사용되는 대규모 다중-테넌트(multi-tenant) 무선 인프라의 경우와 같이 애플리케이션 소유자와 다른 엔티티일 수 있다는 것이 유의되어야 한다.
LoRaWAN에서, 예를 들어, 장치는 다음과 같이 인코딩된 업스트림 메시지들 대부분을 전송한다(도 12 참고) :
전체 메시지(헤더 및 페이로드)의 무결성은 트레일러로서 MIC에 의해 보호되지만 프레임 페이로드만 암호화된다. MIC는 전송 장치에 의해 암호화 방식으로 계산되고, 그리고 장치와 네트워크에만 알려진 장치 별 네트워크 키를 사용하여 네트워크에 의해 검증된다. 프레임 페이로드는 장치 및 애플리케이션 소유자에게만 알려진 장치 별 애플리케이션 키를 사용하여 장치에 의해 암호화된다. 즉, 애플리케이션 소유자만 장치로부터 수신된 애플리케이션 데이터를 해독할 수 있다.
이제, 무선 전송은 일반적으로 방송 중에 도청자들에 의해 리스닝될 수 있기 때문에, 암호화되지 않은 헤더 및 트레일러는 공개 정보로 간주되어야 한다. 따라서 업스트림 메시지들을 리스닝하고, 발송된 메시지들의 RSSI(Radio Signal Strength Indicator) 또는 SNR (Signal-to-Noise Ratio)과 같은 전송 메타-데이터를 검사함으로써, 모바일 장치를 특정 정확도로 추적하고 위치를 지정할 수 있다. 장치가 개인 또는 일부 상품들에 부착된 경우, 해당 개인 또는 상품들은 아무도 모르게 일부 제3 자에 의해 추적될 수 있다.
참고 : 이 개시서는 해결된 문제 및 제안된 해결책의 예시 및 설명을 위해서만 LoRaWAN 프로토콜을 사용한다. 본 개시서 자체는 LoRaWAN 프로토콜 또는 LoRaWAN LP WAN 인프라로 제한되지 않는다.
이에 대한 대책으로, 헤더를, 도청자가 아닌 네트워크 인프라에 의해서 실제 장치와 연관될 수 있는 지속적으로 변경되는 의사-랜덤하게 마스킹된 헤더로 교체해야한다. 트레일러에 MIC와 같은 의사-랜덤 데이터만 포함된 경우, 추가로 의사-랜덤화될 필요가 없을 수 있으며; 그렇지 않다면, 아래 헤더에 대해 설명된 것과 동일한 기법이 트레일러에도 적용될 수 있다.
헤더 의사-랜덤화의 경우, 장치는 장치 주소 및 장치 별 네트워크 키와 함께 네트워크에게 알려진 추가 장치 별 블라인딩 키를 사용하여 생산 중에 개인화된다. 이제 헤더를 평문으로 발송하는 대신, 장치는, 각각의 메시지에 대해, 블라인딩 키를 이용하는 Mask/i-1에 대한 암호화 작업을 사용하여 의사-랜덤 블라인딩 마스크(Mask/i)를 계산한다. 여기서 Mask/o는 장치의 초기 헤더이다. 이에 의해 블라인딩 마스크의 최소 길이는 헤더의 길이와 동일하다. 그 후, 메시지 i의 헤더가 Mask/i와 XOR되고, 현재 마스킹된 헤더는 메시지의 헤더를 대체한다(도 13 참고). 구체적인 예로서, 블라인딩 키는 AES 키일 수 있으며, Mask/i는 블라인딩 키를 이용하는 Mask/i-1에 대한 AES 암호화 작업을 사용함으로써 도출된다.
마스킹된 헤더를 갖는 업스트림 메시지를 전송하는 장치를 올바르게 식별하기 위해, 네트워크는 동일한 작업을 수행하고 그리고 총 장치 집단에 대한 다음 예상 메시지의 후보 헤더들을 사전 계산한다. 충돌의 변화가 모든 실질적인 목적들에 대해 무시할 수 있는 경우, 네트워크는 수신된 마스킹된 헤더의 고정 필드들과 사전-계산된 후보 헤더들의 고정 필드들을 비교함으로써 전송 장치를 식별할 수 있다. 메시지를 애플리케이션 소유자에게 릴레이하기 전에, 네트워크는 마스킹된 헤더를 올바르게 식별된 후보 헤더의 마스크와 XOR하여, 마스킹된 헤더를 마스킹되지 않은 헤더로 교체한다. 이러한 방식으로, 블라인딩은 애플리케이션 소유자에게 투명하다(transparent).
일반적으로, 매우 낮은 확률로, 마스킹된 헤더의 고정 필드들은 다수의 장치들의 후보 헤더들의 고정 필드들과 동일할 수 있다. 이 경우 마스킹된 헤더는 모든 장치들에 대해 하나씩 언마스킹되어야 하고, 그리고 MIC가 확인되어야 한다. 하나의 MIC만 확인하면, 장치가 고유하게 식별된다. 극히 낮은 확률로 둘 이상의 MIC를 확인하면, 메시지는 재구성될 수 없으며 삭제될 것이다. 무선 방식은 이미 산발적인(sporadic) 메시지 손실을 가정하여 동작하기 때문에, 단일 메시지를 삭제하는 것은 그것이 매우 드문 경우로 제한되는 경우 실질적인 의미는 없다. 또한 단일 후보 헤더만 식별되더라도 MIC는 일반적으로 메시지 무결성을 보장하기 위해 항상 검증되어야한다는 것이 유의되어야 한다.
일부 애플리케이션들에 대해, 장치는 적어도 하나의 전송이 성공할 가능성을 증가시키기 위해 임의의 업스트림 메시지들을 여러 번, 가능하면 상이한 채널들에서, 전송하도록 선택할 수 있다. 이 경우, 블라인딩 마스크는 모든 재전송 시마다 강화되며, 이는 다시 블라인딩 키로 인해 복구할 수 없는 업스트림 메시지의 가능성을 크게 줄인다.
언급한 바와 같이, 무선 통신은 무선 스펙트럼에서의 간섭 또는 충돌로 인한 메시지 손실이 발생하기 쉽다. 일부 네트워크 인프라는 확인응답 및 재전송을 사용하여 메시지 전달을 보장하지만, 이것은 LoRaWAN과 같은 대부분의 LPWAN 환경에는 실용적이지 않다. 손실된 업스트림 메시지를 보상하기 위해. 네트워크는 다음 마스킹된 헤더뿐만 아니라 n 개의 다음 마스킹된 헤더 후보들의 범위를 미리 계산할 것이다. 이로써 연속적으로 손실된 n-1 개 메시지들까지 처리할 수 있다. 그 후에도 대부분의 장치들이 대략 주기적으로 전송한다는 점을 고려하여 이력적(historic) 메시지 업스트림 패턴을 기반으로 가장 가능성이 높은 장치들을 식별함으로써 추가 마스킹된 헤더 후보들을 계산하여 재-동기화를 시도할 수 있지만, 그 작업은 엄청나게 비싸질 수 있으며 장치는 손실된 것으로 간주되어야 할 것이다.
n + m (m>= o) 개의 메시지들이 연속적으로 손실되는 경우 장치들이 손실되는 것을 방지하기 위해, 네트워크는 블라인딩 상태를 장치의 블라인딩 상태와 주기적으로 재-동기화할 수 있다. 이를 위해, 장치는 마스킹되지 않은 헤더를 사용하여 개별 메시지들을 주기적으로 전송해야 한다. 이러한 마스킹되지 않은 헤더가 네트워크에 의해 수신되면, 네트워크는 자신의 상태를 장치 블라인딩 상태와 재-동기화하고 향후 헤더들을 언마스킹할 수 있다. 언마스킹된 헤더들은 이상적으로 도청자가 장치 당 여러 개의 언마스킹된 헤더들을 수신할 가능성이 거의 없게 하는 간격으로 전송되어야한다.
참고 : 메시지 헤더는, 일반적으로 변경되거나 산발적으로 포함되어 있음에도 불구하고 도청자가 전송 장치의 아이덴티티를 결정할 수 있게 할 수 있는 일부 가변 필드를 포함하므로 단순히 메시지 헤더를 암호화할 수 없다. 일반적으로, 암호화를 사용하면, 평문 텍스트 내의 단일의 플립된(flipped) 비트가 암호화된 텍스트 전체에 걸쳐 퍼져있는 암호화된 텍스트 내의 비트들의 약 50 %를 플립핑(flipping)하는 경향이 있다. 이런 방식으로, 네트워크가 일반적으로 가변 필드들의 값들을 예측할 수 없으므로, 헤더의 일부인 마스킹된 장치 주소는 더 이상 네트워크에 의해 사전-계산될 수 없다.
이전에 파생된 방식은 업스트림-전용 장치들에서 작동하지만, 일부 예약(reservation)과 마찬가지로 양방향 통신 및 다운스트림 메시지들이 가능한 장치에도 적용될 수 있다.
먼저, 장치가 네트워크 인프라가 업스트림 메시지의 수신을 확인하도록 요청하는 경우, 이러한 수신확인은 MIC가 성공적으로 확인된 후에만 전송될 수 있다. 그렇지 않으면, 매우 드문 경우이지만, 마스킹으로 인해 메시지를 복구할 수 없는 경우에도, 수신확인이 전송될 것이다. 재전송은 마스크를 강화시킨다.
둘째, 동일한 블라인딩 키 또는 제2 블라인딩 키를 사용하여 다운스트림 메시지들에 이 방식을 적용할 수도 있다. 그러나 장치상에서의 계산 노력은 두 가지 이유로 약간 높다 : (1) 장치는 MIC를 언마크싱하고 검증하기 위해 잠재적인 헤더 후보 세트를 시도해야 한다; (2) 장치는 모든 후보들을 시도한 후에만 다른 장치들에 대한 메시지들을 삭제할 수 있다. LoRaWAN의 경우, 장치가 다운스트림 메시지를 매우 산발적으로만 리스닝하기 때문에 이유 (2)는 자주 발생하지 않지만, 사용되는 무선 방식 그리고 특정 애플리케이션 제약 조건(예를 들어, 배터리 수명)에 따라 문제가 될 수 있다.
셋째, 업스트림 메시지들의 수에 따라, 때때로 블라인딩 키를 교체하는 것이 합리적일 수 있다. 이는 장치 및/또는 네트워크가 장치 별 세션 키들을 재협상하기로 결정할 때마다 또는 독립적으로 수행될 수 있다. 또한 장치 별 세션 키 다음에 장치의 마스킹 상태가 재협상되는 방식으로 재협상이 수행되는 경우, n + m 개의 연속적으로 손실되는 메시지들로 인해 장치들이 손실되는 것을 방지할 수 있다. LoRaWAN 장치는 단순하게 무선으로 네트워크에 다시 가입할 수 있다.
언급한 바와 같이, 업스트림 메시지를 올바르게 언마스킹하기 위해, 네트워크는 원칙적으로 전체 장치 집단에 대해 장치마다 가능한 여러 헤더 후보들을 사전 계산해야한다. 다소 예측 가능한 패턴들로 전송하는 장치들에 대해, 그리고 이러한 패턴들이 네트워크에게 사전 인식되거나 시간이 지남에 따라 네트워크 자체에 의해 학습된 경우, 네트워크는 전송 장치에 대한 검색을 가능한 후보 그룹들로 제한할 수 있다. 후보 그룹 내에서 장치가 식별될 수 없거나 또는 (아마도 앞에서 설명한 것처럼 가능성이 거의 없지만 여전히 가능한 충돌로 인해) MIC가 식별된 후보를 검증하지 않는 경우, 네트워크에서 검색 범위를 넓혀야 한다.
완전히 블라인딩된 헤더는 장치의 블라인딩 상태가 로밍 네트워크 인프라와 공유되지 않는 한 장치가 로밍하는 것을 방지한다. 대안적으로, LoRaWAN에서와 같은 헤더에 홈 네트워크의 네트워크 식별자가 포함된 경우, 그 네트워크 식별자는 로밍 네트워크가 네트워크 식별자에 기초하여 홈 네트워크로 메시지들을 간단히 포워딩할 수 있도록 평문으로(언블라인딩 상태로) 유지될 수 있다. 동일한 네트워크에서 로밍된 장치들의 수가 적지 않으면 프라이버시는 여전히 유지될 것이다.
헤더를 블라인딩하는 것은 동일한 장치에 의해 전송된 메시지들을 식별할 수 있는 가장 확실한 소스를 제거하지만, 여전히 장치의 전송 동작은 통신의 다른 (거의) 고유한 패턴으로 인해 어느 정도 확률로 그것의 아이덴티티를 밝힐 수 있다. 동일한 전송 전력으로 동일한 데이터 속도로 동일한 무선 채널 내에서 항상 동일한 길이의 메시지들이 엄격하게 주기적으로 전송될 수 있다. 프라이버시를 더욱 향상시키기 위해, 장치는 일부 의사-랜덤 포지티브 또는 네가티브 딜레이로 전송 시간을 변경하고, 의사-랜덤 길이의 일부 페이로드 패딩을 추가함으로써, 이러한 모든 파라미터들을 의사 랜덤화할 수 있으며, 채널들을 의사-무작위로 호핑(hopping)하고, 데이터 속도를 변경하며, 전송 전력을 조정할 수 있다. 장치는 심지어 배터리 수명을 줄이더라도 순수하게 무작위화된 메시지를 산재(interspersing)하여 애플리케이션 수준에서 필터링할 수도 있다.
마지막으로 프라이버시 보호되는 것 다음으로, 블라인딩 헤더들은 모든 장치가 각 업스트림 메시지를 가진 상이한 장치로 효과적으로 가장하기 때문에 네트워크 또는 특정 지역 내에 있는 실제 장치 집단이 숨겨져 있다는 이점이 있다. 이는 여러 가지 이유로 네트워크 내 장치 수를 경쟁 업체에 공개하지 않으려는 네트워크 운영자들에게 중요한 부작용일 수 있다.

Claims (55)

  1. 메시지 프레임들을 전송하는 방법으로서,
    프로세서를 포함하는 단말 장치에 의해, 제1 평문 헤더를 포함하는 제1 메시지 프레임 부분을 생성하는 단계;
    장치 식별자(DevEUI) 및 헤더 블라인딩 키(HdrBKey)를 획득하는 단계;
    상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성하는 단계;
    상기 제1 평문 헤더에 상기 제1 헤더 마스크를 적용함으로써 제1 블라인딩된 헤더를 획득하는 단계;
    상기 제1 블라인딩된 헤더를 사용하여 상기 제1 메시지 부분을 업데이트함으로써 제1 업데이트된 메시지 프레임 부분을 획득하는 단계;
    상기 제1 업데이트된 메시지 프레임 부분을 포함하는 제1 블라인딩된 메시지 프레임을 생성하는 단계; 및
    네트워크 게이트웨이에 상기 제1 블라인딩된 메시지 프레임을 전송하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 DevEUI 및 상기 HdrBKey는 각각 상기 단말 장치에 고유한, 방법.
  3. 청구항 1에 있어서,
    상기 제1 헤더 마스크를 생성하는 단계는 상기 HdrBKey를 사용하여 상기 DevEUI에 대해 암호화 작업을 수행하는 단계를 포함하는, 방법.
  4. 청구항 3에 있어서,
    상기 암호화 작업은 대칭 암호를 수반하는, 방법.
  5. 청구항 1에 있어서,
    상기 제1 블라인딩된 헤더를 획득하는 단계는 상기 제1 헤더 마스크와 상기 제1 평문 헤더 간의 비트간 배타적 논리합(exclusice OR; XOR) 연산을 수행하는 단계를 포함하는, 방법.
  6. 청구항 1에 있어서,
    상기 제1 업데이트된 메시지 프레임 부분을 획득하는 단계는 상기 제1 메시지 프레임 부분의 제1 평문 헤더를 상기 제1 블라인딩된 헤더로 교체하는 단계를 포함하는, 방법.
  7. 청구항 1에 있어서,
    상기 제1 메시지 프레임 부분을 생성하는 단계 이전에, 상기 단말 장치에 의해, 상기 단말 장치의 제조 공정 동안 DevEUI를 수신하는 단계를 더 포함하는, 방법.
  8. 청구항 7에 있어서,
    상기 단말 장치에 의해, 상기 단말 장치의 제조 공정 동안 HdrBKey를 수신하는 단계를 더 포함하는, 방법.
  9. 청구항 7에 있어서,
    상기 단말 장치에 의해, 상기 DevEUI를 포함하는 가입 요청 메시지를 생성하는 단계;
    네트워크 호스트에게 상기 가입 요청 메시지를 전송하는 단계;
    상기 네트워크 호스트로부터, 네트워크 식별자(NetID)를 포함하는 암호화된 가입 승인 메시지를 수신하는 단계;
    상기 암호화된 가입 승인 메시지를 해독함으로써 상기 NetID를 추출하는 단계; 및
    적어도 애플리케이션 키(AppKey) 및 상기 NetID를 사용하여 상기 HdrBkey를 도출하는 단계를 더 포함하는, 방법.
  10. 청구항 9에 있어서,
    상기 암호화된 가입 승인 메시지를 해독하는 단계는 상기 AppKey를 사용하여 암호화 작업을 수행하는 단계를 포함하며, 상기 암호화 작업은 대칭 암호를 수반하는, 방법.
  11. 청구항 9에 있어서,
    상기 HdrBKey를 도출하는 단계는 상기 AppKey를 사용하여 적어도 상기 NetID에 대해 암호화 작업을 수행하는 단계를 포함하며, 상기 암호화 작업은 대칭 암호를 수반하는, 방법.
  12. 청구항 1에 있어서,
    상기 단말 장치에 의해, 제2 평문 헤더를 포함하는 제2 메시지 프레임 부분을 생성하는 단계;
    상기 제1 헤더 마스크 및 상기 HdrBKey를 사용하여 제2 헤더 마스크를 생성하는 단계;
    상기 제2 평문 헤더에 상기 제2 헤더 마스크를 적용함으로써 제2 블라인딩된 헤더를 획득하는 단계;
    상기 제2 블라인딩된 헤더를 사용하여 상기 제2 메시지 프레임 부분을 업데이트함으로써 제2 업데이트된 메시지 프레임을 획득하는 단계;
    상기 제2 업데이트된 메시지 프레임 부분을 포함하는 제2 블라인딩된 메시지 프레임을 생성하는 단계; 및
    상기 네트워크 게이트웨이에 상기 제2 블라인딩된 메시지 프레임을 전송하는 단계를 포함하는, 방법.
  13. 청구항 12에 있어서,
    상기 제2 헤더 마스크를 생성하는 단계는 상기 HdrBKey를 사용하여 상기 제1 헤더 마스크에 대해 암호화 작업을 수행하는 단계를 포함하는, 방법.
  14. 청구항 13에 있어서,
    상기 암호화 작업은 대칭 암호를 수반하는, 방법.
  15. 청구항 12에 있어서,
    상기 제2 블라인딩된 헤더를 획득하는 단계는 상기 제2 헤더 마스크와 상기 제2 평문 헤더 간의 비트간 배타적 논리합(exclusice OR; XOR) 연산을 수행하는 단계를 포함하는, 방법.
  16. 청구항 12에 있어서,
    상기 제2 업데이트된 메시지 프레임을 획득하는 단계는 상기 제2 메시지 프레임 부분의 제2 평문 헤더를 상기 제2 블라인딩된 헤더로 교체하는 단계를 포함하는, 방법.
  17. 청구항 1에 있어서,
    상기 단말 장치에 의해 그리고 상기 네트워크 게이트웨이로부터, 제2 블라인딩된 헤더를 포함하는 제2 블라인딩된 메시지를 수신하는 단계;
    상기 제1 헤더 마스크 및 상기 HdrBKey를 사용하여 제2 헤더 마스크를 생성하는 단계;
    상기 제2 블라인딩된 헤더에 상기 제2 헤더 마스크를 적용함으로써 제2 평문 헤더를 획득하는 단계; 및
    상기 제2 평문 헤더를 사용하여 상기 제2 블라인딩된 메시지 프레임을 업데이트함으로써 제2 메시지 프레임을 획득하는 단계를 포함하는, 방법.
  18. 청구항 17에 있어서,
    상기 제2 헤더 마스크를 생성하는 단계는 상기 HdrBKey를 사용하여 상기 제1 헤더 마스크에 대해 암호화 작업을 수행하는 단계를 포함하며, 상기 암호화 작업은 대칭 암호를 수반하는, 방법.
  19. 청구항 17에 있어서,
    상기 제2 평문 헤더를 획득하는 단계는 상기 제2 헤더 마스크와 상기 제2 블라인딩된 헤더 간의 비트간 배타적 논리합(exclusice OR; XOR) 연산을 수행하는 단계를 포함하는, 방법.
  20. 청구항 17에 있어서,
    상기 제2 메시지 프레임을 획득하는 단계는 상기 제2 블라인딩된 메시지 프레임의 제2 블라인딩된 헤더를 상기 제2 평문 헤더로 교체하는 단계를 포함하는, 방법.
  21. 청구항 17에 있어서,
    상기 단말 장치에 의해, 상기 제2 메시지 프레임으로부터 암호화된 프레임 페이로드 및 제1 메시지 무결성 코드(message integrity code; MIC)를 추출하는 단계;
    상기 제2 평문 헤더, 상기 암호화된 프레임 페이로드 및 네트워크 세션 키(NwkSKey)를 사용하여 제2 MIC를 생성하는 단계;
    상기 제1 MIC 및 상기 제2 MIC를 사용하여 상기 제2 메시지 프레임을 인증하는 단계;
    상기 인증에 기초하여, 적어도 애플리케이션 세션 키(AppSKey)를 사용하여 상기 암호화된 프레임 페이로드를 해독함으로써 프레임 페이로드를 획득하는 단계; 및
    상기 단말 장치를 재구성하기 위해 명령들의 세트를 실행하는 단계로서, 상기 프레임 페이로드는 상기 명령들의 세트를 포함하는, 단계를 더 포함하는, 방법.
  22. 청구항 21에 있어서,
    상기 제2 MIC를 생성하는 단계는 상기 NwkSKey를 사용하여 상기 제2 평문 헤더 및 상기 암호화된 프레임 페이로드에 대해 암호화 작업을 수행하는 단계를 포함하며, 상기 암호화 작업은 대칭 암호를 수반하는, 방법.
  23. 청구항 21에 있어서,
    상기 제2 메시지 프레임을 인증하는 단계는 상기 제1 MIC가 상기 제2 MIC와 매칭하는지 판단하는 단계를 포함하는, 방법.
  24. 청구항 21에 있어서,
    상기 단말 장치를 재구성하는 단계는 상기 단말 장치에 의한 적어도 하나의 단말 장치 구성 파라미터의 조정을 포함하는, 방법.
  25. 청구항 1에 있어서,
    상기 단말 장치에 의해, 단말 장치 동작 파라미터들의 세트를 모니터링하는 단계;
    설정 기준과 비교하여 상기 단말 장치 동작 파라미터들의 세트를 검사하는 단계;
    상기 검사에 기초하여, 상기 단말 장치 동작 파라미터들의 세트가 상기 설정 기준을 충족하는지를 판단하는 단계; 및
    상기 판단에 기초하여, 단말 장치 구성 파라미터들의 세트를 조정하는 단계를 더 포함하는, 방법.
  26. 청구항 25에 있어서,
    상기 단말 장치 동작 파라미터들의 세트는 상기 단말 장치상의 센서에 의해 측정된 물리적 특성을 포함하는, 방법.
  27. 청구항 26에 있어서,
    상기 단말 장치 동작 파라미터들의 세트는 적어도 상기 물리적 특성으로부터 도출되는 메트릭(metric)을 더 포함하는, 방법.
  28. 청구항 25에 있어서,
    상기 설정 기준은 상기 단말 장치의 제조 공정 동안 사전 설정된 정적 조건(static condition)을 포함하는, 방법.
  29. 청구항 28에 있어서,
    상기 설정 기준은 동적 조건을 더 포함하는, 방법.
  30. 메시지 프레임들을 전송하는 방법으로서,
    네트워크 호스트에 의해 그리고 장치 집단(device population)의 각 단말 장치에 대해, 장치 식별자(DevEUI), 헤더 블라인딩 키(HdrBKey) 및 장치 주소(DevAddr)를 획득하는 단계;
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성함으로써 제1 헤더 마스크들의 세트를 획득하는 단계;
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevAddr를 포함하는 제1 후보 평문 헤더(CPH)를 생성하는 단계;
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 제1 CPH에 상기 제1 헤더 마스크를 적용함으로써 제1 후보 블라인딩된 헤더(candidate blinded header; CBH)들의 세트를 획득하는 단계;
    네트워크 게이트웨이로부터, 제1 블라인딩된 헤더를 포함하는 제1 메시지 프레임을 획득하는 단계;
    상기 제1 블라인딩된 헤더를 상기 제1 CBH들의 세트의 각각의 제1 CBH와 비교하는 단계;
    상기 비교에 기초하여, 상기 제1 CBH들의 세트 중에서, 상기 제1 블라인딩된 헤더에 포함되는 제2 고정 비트 세트와 매칭하는 제1 고정 비트 세트를 포함하는 제1 고정-비트 매칭 CBH를 식별하는 단계;
    상기 제1 블라인딩된 헤더에 상기 제1 헤더 마스크들의 세트 중 하나의 제1 헤더 마스크를 적용함으로써 제1 평문 헤더를 획득하는 단계로서, 상기 하나의 제1 헤더 마스크는 상기 제1 고정-비트-매칭 CBH에 대응하는, 단계;
    상기 제1 평문 헤더를 사용하여 상기 제1 메시지 프레임을 업데이트함으로써 제1 언블라인딩된 메시지 프레임을 획득하는 단계; 및
    애플리케이션 시스템에 상기 제1 언블라인딩된 메시지 프레임을 전송하는 단계를 포함하는, 방법.
  31. 청구항 30에 있어서,
    상기 장치 집단은 상기 네트워크 호스트에 의해 관리되는 단말 장치들의 세트를 포함하는, 방법.
  32. 청구항 30에 있어서,
    상기 장치 집단의 각각의 단말 장치에 대해 제1 헤더 마스크를 생성하는 단계는 상기 HdrBKey를 사용하여 상기 DevEUI에 대해 암호화 작업을 수행하는 단계를 포함하는, 방법.
  33. 청구항 32에 있어서,
    상기 암호화 작업은 대칭 암호를 수반하는, 방법.
  34. 청구항 30에 있어서,
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 제1 CPH에 상기 제1 헤더 마스크를 적용함으로써 제1 CBH들의 세트를 획득하는 단계는 상기 제1 헤더 마스크와 상기 제1 CPH 간의 비트간 배타적 논리합(exclusice OR; XOR) 연산을 수행하는 단계를 포함하는, 방법.
  35. 청구항 30에 있어서,
    상기 제1 메시지 프레임을 획득하는 단계는 :
    상기 네트워크 호스트에 의해 그리고 상기 네트워크 게이트웨이로부터, 상기 제1 메시지 프레임을 캡슐화하는 매체 접근 제어(MAC) 프레임을 수신하는 단계; 및
    상기 MAC 프레임을 디캡슐화함으로써 상기 제1 메시지 프레임을 추출하는 단계를 포함하는, 방법.
  36. 청구항 30에 있어서,
    상기 제1 고정 비트 세트 및 상기 제2 고정 비트 세트 각각은 상기 DevAddr를 나타내는 고정 비트들의 서브세트를 포함하는, 방법.
  37. 청구항 30에 있어서,
    상기 제1 블라인딩된 헤더에 상기 하나의 제1 헤더 마스크를 적용함으로써 제1 평문 헤더를 획득하는 단계는 상기 하나의 제1 헤더 마스크와 상기 제1 블라인딩된 헤더 간의 비트간 배타적 논리합(XOR) 연산을 수행하는 단계를 포함하는, 방법.
  38. 청구항 30에 있어서,
    상기 제1 평문 헤더를 사용하여 상기 제1 메시지 프레임을 업데이트함으로써 제1 언블라인딩된 메시지 프레임을 획득하는 단계는 상기 제1 메시지 프레임의 상기 제1 블라인딩된 헤더를 상기 제1 평문 헤더로 교체하는 단계를 포함하는, 방법.
  39. 청구항 30에 있어서,
    상기 네트워크 호스트에 의해, 상기 장치 집단의 각각의 단말 장치에 대해, 상기 제1 헤더 마스크 및 상기 HdrBKey를 사용하여 제2 헤더 마스크를 생성함으로써 제2 헤더 마스크들의 세트를 획득하는 단계;
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevAddr을 포함하는 제2 CPH를 생성하는 단계;
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 제2 CPH에 상기 제2 헤더 마스크를 적용함으로써 제2 CBH들의 세트를 획득하는 단계;
    상기 네트워크 게이트웨이로부터, 제2 블라인딩된 헤더를 포함하는 제2 메시지 프레임을 획득하는 단계;
    상기 제2 CBH들의 세트의 각각의 제2 CBH와 상기 제2 블라인딩된 헤더를 비교하는 단계;
    상기 비교에 기초하여, 상기 제2 CBH들의 세트 중에서, 제2 블라인딩된 헤더에 포함되는 제4 고정 비트 세트와 매칭하는 제3 고정 비트 세트를 포함하는 제2 고정-비트-매칭 CBH를 식별하는 단계;
    상기 제2 블라인딩된 헤더에 상기 제2 헤더 마스크들의 세트 중 하나의 제2 헤더 마스크를 적용함으로써 제2 평문 헤더를 획득하는 단계로서, 상기 하나의 제2 헤더 마스크는 상기 제2 고정-비트-매칭 CBH에 대응하는, 단계;
    상기 제2 평문 헤더를 사용하여 상기 제2 메시지 프레임을 업데이트함으로써 제2 언블라인딩된 메시지 프레임을 획득하는 단계; 및
    상기 애플리케이션 시스템에 상기 제2 언블라인딩된 메시지 프레임을 전송하는 단계를 더 포함하는, 방법.
  40. 청구항 39에 있어서,
    상기 장치 집단의 각각의 단말 장치에 대해 제2 헤더 마스크를 생성하는 단계는 상기 HdrBKey를 사용하여 상기 제1 헤더 마스크에 대해 암호화 작업을 수행하는 단계를 포함하는, 방법.
  41. 청구항 40에 있어서,
    상기 암호화 작업은 대칭 암호를 수반하는, 방법.
  42. 청구항 39에 있어서,
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 제2 CPH에 상기 제2 헤더 마스크를 적용함으로써 제2 CBH들의 세트를 획득하는 단계는 상기 제2 헤더 마스크와 상기 제2 CPH 간의 비트간 배타적 논리합(exclusice OR; XOR) 연산을 수행하는 단계를 포함하는, 방법.
  43. 청구항 39에 있어서,
    상기 제3 고정 비트 세트 및 상기 제4 고정 비트 세트 각각은 상기 DevAddr를 나타내는 고정 비트들의 서브세트를 포함하는, 방법.
  44. 청구항 39에 있어서,
    상기 제2 블라인딩된 헤더에 상기 하나의 제2 헤더 마스크를 적용함으로써 제2 평문 헤더를 획득하는 단계는 상기 하나의 제2 헤더 마스크와 상기 제2 블라인딩된 헤더 간의 비트간 배타적 논리합(XOR) 연산을 수행하는 단계를 포함하는, 방법.
  45. 청구항 39에 있어서,
    상기 제2 평문 헤더를 사용하여 상기 제2 메시지 프레임을 업데이트함으로써 제2 언블라인딩된 메시지 프레임을 획득하는 단계는 상기 제2 메시지 프레임의 상기 제2 블라인딩된 헤더를 상기 제2 평문 헤더로 교체하는 단계를 포함하는, 방법.
  46. 청구항 30에 있어서,
    상기 네트워크 호스트에 의해, 네트워크 동작 파라미터들의 세트를 모니터링하는 단계;
    설정 기준에 대해 상기 네트워크 동작 파라미터들의 세트를 검사하는 단계;
    상기 검사에 기초하여, 상기 네트워크 동작 파라미터들의 세트가 상기 설정 기준을 충족하는지를 판단하는 단계; 및
    상기 판단에 기초하여, 네트워크 구성 파라미터들의 세트를 조정하는 단계를 더 포함하는, 방법.
  47. 청구항 46에 있어서,
    상기 네트워크 동작 파라미터들의 세트는 적어도 하나의 네트워크 성능 메트릭을 포함하는, 방법.
  48. 청구항 46에 있어서,
    상기 네트워크 호스트에 의해, 적어도 하나의 단말 장치 구성 파라미터 및 적어도 하나의 대응 세트 값을 포함하는 구성 업데이트 메시지를 생성하는 단계; 및
    상기 네트워크 게이트웨이를 통해 단말 장치에 상기 구성 업데이트 메시지를 전송하는 단계를 더 포함하는, 방법.
  49. 청구항 48에 있어서,
    상기 구성 업데이트 메시지는 상기 단말 장치를 재구성하며,
    상기 단말 장치를 재구성하는 것은 상기 네트워크 구성 파라미터들의 세트의 조정과 관련되는, 방법.
  50. 단말 장치로서,
    상기 단말 장치는 :
    통신 인터페이스; 및
    상기 통신 인터페이스에 동작 가능하게 연결되고 블라인딩 필터(blinding filter)가 실행되는 프로세서를 포함하며,
    상기 프로세서는 :
    제1 평문 헤더를 포함하는 제1 메시지 프레임 부분을 생성하도록 구성되고;
    장치 식별자(DevEUI) 및 헤더 블라인딩 키(HdrBKey)를 획득하도록 구성되고;
    상기 블라인딩 필터를 사용하여, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성하도록 구성되고;
    상기 블라인딩 필터를 사용하여, 상기 제1 평문 헤더에 상기 제1 헤더 마스크를 적용함으로써 제1 블라인딩된 헤더를 획득하도록 구성되고;
    상기 제1 블라인딩된 헤더를 사용하여 상기 제1 메시지 부분을 업데이트함으로써 제1 업데이트된 메시지 프레임 부분을 획득하도록 구성되고;
    상기 제1 업데이트된 메시지 프레임 부분을 포함하는 제1 블라인딩된 메시지 프레임을 생성하도록 구성되고; 그리고
    상기 통신 인터페이스를 사용하여, 네트워크 게이트웨이에 상기 제1 블라인딩된 메시지 프레임을 전송하도록 구성되는, 단말 장치.
  51. 네트워크 호스트로서,
    상기 네트워크 호스트는 :
    통신 인터페이스; 및
    상기 통신 인터페이스에 동작 가능하게 연결되고 블라인딩 필터(blinding filter)가 실행되는 프로세서를 포함하며,
    상기 프로세서는 :
    장치 집단(device population)의 각각의 단말 장치에 대해, 장치 식별자(DevEUI), 헤더 블라인딩 키(HdrBKey) 및 장치 주소(DevAddr)를 획득하도록 구성되고;
    상기 블라인딩 필터를 사용하여, 상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성함으로써 제1 헤더 마스크들의 세트를 획득하도록 구성되고;
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevAddr를 포함하는 제1 후보 평문 헤더(CPH)를 생성하도록 구성되고;
    상기 블라인딩 필터를 사용하여, 상기 장치 집단의 각각의 단말 장치에 대해, 상기 제1 CPH에 상기 제1 헤더 마스크를 적용함으로써 제1 후보 블라인딩된 헤더(candidate blinded header; CBH)들의 세트를 획득하도록 구성되고;
    상기 통신 인터페이스를 사용하여 그리고 상기 네트워크 호스트에 동작 가능하게 연결된 네트워크 게이트웨이로부터, 제1 블라인딩된 헤더를 포함하는 제1 메시지 프레임을 획득하도록 구성되고;
    상기 제1 블라인딩된 헤더를 상기 제1 CBH들의 세트의 각각의 제1 CBH와 비교하도록 구성되고;
    상기 비교에 기초하여, 상기 제1 CBH들의 세트 중에서, 상기 제1 블라인딩된 헤더에 포함되는 제2 고정 비트 세트와 매칭하는 제1 고정 비트 세트를 포함하는 제1 고정-비트 매칭 CBH를 식별하도록 구성되고;
    상기 제1 블라인딩된 헤더에 상기 제1 헤더 마스크들의 세트 중 하나의 제1 헤더 마스크를 적용함으로써 제1 평문 헤더를 획득하도록 구성되는데, 상기 하나의 제1 헤더 마스크는 상기 제1 고정-비트-매칭 CBH에 대응하며;
    상기 제1 평문 헤더를 사용하여 상기 제1 메시지 프레임을 업데이트함으로써 제1 언블라인딩된 메시지 프레임을 획득하도록 구성되고; 그리고
    상기 통신 인터페이스를 사용하여, 애플리케이션 시스템에 상기 제1 언블라인딩된 메시지 프레임을 전송하도록 구성되는, 네트워크 호스트.
  52. 시스템으로서,
    상기 시스템은 :
    네트워크 게이트웨이; 및
    제1 통신 인터페이스 및 제1 블라인딩 필터(blinding filter)가 실행되는 제1 프로세서를 포함하는 단말 장치로서, 상기 단말 장치는 상기 네트워크 게이트웨이에 동작 가능하게 연결되는, 단말 장치를 포함하며,
    상기 제1 프로세서는 :
    제1 평문 헤더를 포함하는 제1 메시지 프레임 부분을 생성하도록 구성되고;
    장치 식별자(DevEUI) 및 헤더 블라인딩 키(HdrBKey)를 획득하도록 구성되고;
    상기 제1 블라인딩 필터를 사용하여, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성하도록 구성되고;
    상기 제1 블라인딩 필터를 사용하여, 상기 제1 평문 헤더에 상기 제1 헤더 마스크를 적용함으로써 제1 블라인딩된 헤더를 획득하도록 구성되고;
    상기 제1 블라인딩된 헤더를 사용하여 상기 제1 메시지 부분을 업데이트함으로써 제1 업데이트된 메시지 프레임 부분을 획득하도록 구성되고;
    상기 제1 업데이트된 메시지 프레임 부분을 포함하는 제1 블라인딩된 메시지 프레임을 생성하도록 구성되고; 그리고
    상기 제1 통신 인터페이스를 사용하여, 네트워크 게이트웨이에 상기 제1 블라인딩된 메시지 프레임을 전송하도록 구성되는, 시스템.
  53. 청구항 52에 있어서,
    상기 시스템은 :
    애플리케이션 시스템; 및
    제2 통신 인터페이스 및 제2 블라인딩 필터가 실행되는 제2 프로세서를 포함하는 네트워크 호스트로서, 상기 네트워크 호스트는 상기 네트워크 게이트웨이 및 상기 애플리케이션 시스템에 동작 가능하게 연결되는, 네트워크 호스트를 더 포함하며,
    상기 제2 프로세서는 :
    장치 집단(device population)의 각각의 단말 장치에 대해, 상기 DevEUI, 상기 HdrBKey 및 장치 주소(DevAddr)를 획득하도록 구성되고;
    상기 제2 블라인딩 필터를 사용하여, 상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제2 헤더 마스크를 생성함으로써 제2 헤더 마스크들의 세트를 획득하도록 구성되고;
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevAddr를 포함하는 제1 후보 평문 헤더(CPH)를 생성하도록 구성되고;
    상기 제2 블라인딩 필터를 사용하여, 상기 장치 집단의 각각의 단말 장치에 대해, 상기 제1 CPH에 상기 제2 헤더 마스크를 적용함으로써 제1 후보 블라인딩된 헤더(candidate blinded header; CBH)들의 세트를 획득하도록 구성되고;
    상기 제2 통신 인터페이스를 사용하여 그리고 상기 네트워크 게이트웨이로부터, 제2 블라인딩된 헤더를 포함하는 메시지 프레임을 획득하도록 구성되고;
    상기 제2 블라인딩된 헤더를 상기 제1 CBH들의 세트의 각각의 제1 CBH와 비교하도록 구성되고;
    상기 비교에 기초하여, 상기 제1 CBH들의 세트 중에서, 상기 제2 블라인딩된 헤더에 포함되는 제2 고정 비트 세트와 매칭하는 제1 고정 비트 세트를 포함하는 제1 고정-비트 매칭 CBH를 식별하도록 구성되고;
    상기 제2 블라인딩된 헤더에 상기 제2 헤더 마스크들의 세트 중 하나의 제2 헤더 마스크를 적용함으로써 제2 평문 헤더를 획득하도록 구성되는데, 상기 하나의 제2 헤더 마스크는 상기 제1 고정-비트-매칭 CBH에 대응하며;
    상기 제2 평문 헤더를 사용하여 상기 메시지 프레임을 업데이트함으로써 언블라인딩된 메시지 프레임을 획득하도록 구성되고; 그리고
    상기 제2 통신 인터페이스를 사용하여, 애플리케이션 시스템에 상기 언블라인딩된 메시지 프레임을 전송하도록 구성되는, 시스템.
  54. 컴퓨터 판독 가능한 프로그램 코드를 포함하는 비-일시적 컴퓨터 판독 가능한 매체(computer readable medium; CRM)로서,
    상기 컴퓨터 판독 가능한 프로그램 코드는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 :
    제1 평문 헤더를 포함하는 제1 메시지 프레임 부분을 생성하게 하고;
    장치 식별자(DevEUI) 및 헤더 블라인딩 키(HdrBKey)를 획득하게 하고;
    상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성하게 하고;
    상기 제1 평문 헤더에 상기 제1 헤더 마스크를 적용함으로써 제1 블라인딩된 헤더를 획득하게 하고;
    상기 제1 블라인딩된 헤더를 사용하여 상기 제1 메시지 부분을 업데이트함으로써 제1 업데이트된 메시지 프레임 부분을 획득하게 하고;
    상기 제1 업데이트된 메시지 프레임 부분을 포함하는 제1 블라인딩된 메시지 프레임을 생성하게 하고; 그리고
    네트워크 게이트웨이에 상기 제1 블라인딩된 메시지 프레임을 전송하게 하는, 비-일시적 컴퓨터 판독 가능한 매체.
  55. 컴퓨터 판독 가능한 프로그램 코드를 포함하는 비-일시적 컴퓨터 판독 가능한 매체(computer readable medium; CRM)로서,
    상기 컴퓨터 판독 가능한 프로그램 코드는 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 :
    장치 집단(device population)의 각각의 단말 장치에 대해, 장치 식별자(DevEUI), 헤더 블라인딩 키(HdrBKey) 및 장치 주소(DevAddr)를 획득하게 하고;
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevEUI 및 상기 HdrBKey를 사용하여 제1 헤더 마스크를 생성함으로써 제1 헤더 마스크들의 세트를 획득하게 하고;
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 DevAddr를 포함하는 제1 후보 평문 헤더(CPH)를 생성하게 하고;
    상기 장치 집단의 각각의 단말 장치에 대해, 상기 제1 CPH에 상기 제1 헤더 마스크를 적용함으로써 제1 후보 블라인딩된 헤더(candidate blinded header; CBH)들의 세트를 획득하게 하고;
    네트워크 게이트웨이로부터, 제1 블라인딩된 헤더를 포함하는 제1 메시지 프레임을 획득하게 하고;
    상기 제1 블라인딩된 헤더를 상기 제1 CBH들의 세트의 각각의 제1 CBH와 비교하게 하고;
    상기 비교에 기초하여, 상기 제1 CBH들의 세트 중에서, 상기 제1 블라인딩된 헤더에 포함되는 제2 고정 비트 세트와 매칭하는 제1 고정 비트 세트를 포함하는 제1 고정-비트 매칭 CBH를 식별하게 하고;
    상기 제1 블라인딩된 헤더에 상기 제1 헤더 마스크들의 세트 중 하나의 제1 헤더 마스크를 적용함으로써 제1 평문 헤더를 획득하게 하는데, 상기 하나의 제1 헤더 마스크는 상기 제1 고정-비트-매칭 CBH에 대응하며;
    상기 제1 평문 헤더를 사용하여 상기 제1 메시지 프레임을 업데이트함으로써 제1 언블라인딩된 메시지 프레임을 획득하게 하며; 그리고
    애플리케이션 시스템에 상기 제1 언블라인딩된 메시지 프레임을 전송하게 하는, 비-일시적 컴퓨터 판독 가능한 매체.






KR1020197027914A 2017-02-24 2017-10-11 프라이버시 보호 메시지 블라인딩 KR102156812B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762463401P 2017-02-24 2017-02-24
US62/463,401 2017-02-24
PCT/US2017/056176 WO2018156206A1 (en) 2017-02-24 2017-10-11 Privacy preserving message blinding

Publications (2)

Publication Number Publication Date
KR20190138637A true KR20190138637A (ko) 2019-12-13
KR102156812B1 KR102156812B1 (ko) 2020-09-17

Family

ID=63254058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197027914A KR102156812B1 (ko) 2017-02-24 2017-10-11 프라이버시 보호 메시지 블라인딩

Country Status (5)

Country Link
US (1) US11838751B2 (ko)
EP (1) EP3586241A4 (ko)
KR (1) KR102156812B1 (ko)
CN (1) CN110651447B (ko)
WO (1) WO2018156206A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110519830B (zh) * 2019-09-06 2021-07-06 中国机械设备工程股份有限公司 能识别终端设备重号的LoRaWAN系统及其终端设备
US11778511B2 (en) 2019-09-18 2023-10-03 Kabushiki Kaisha Toshiba Transmission parameter probing and searching for agile link quality adaptation
US11172388B2 (en) * 2019-09-18 2021-11-09 Kabushiki Kaisha Toshiba Link quality awareness for uplink transmissions from nodes to gateways
US11954047B2 (en) 2020-09-26 2024-04-09 Intel Corporation Circuitry and methods for spatially unique and location independent persistent memory encryption
WO2023067247A1 (en) * 2021-10-20 2023-04-27 Everynet Oy Methods and systems for dataflow control in low power wide area networks
WO2023203275A1 (en) * 2022-04-22 2023-10-26 Everynet Oy Methods and systems for limiting backhaul utilization in low power wide area networks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040077569A (ko) * 2003-02-28 2004-09-04 삼성전자주식회사 초 광대역 통신시스템에서 헤더정보 전송장치 및 방법
US20100098080A1 (en) * 2008-10-19 2010-04-22 Robert Stacey Payload Header Suppression with Conditional Field Suppression
US20100278533A1 (en) * 2009-04-30 2010-11-04 Telefonaktiebolaget L M Ericsson (Publ) Bit mask to obtain unique identifier
KR20160127511A (ko) * 2015-04-27 2016-11-04 삼성전자주식회사 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9525696B2 (en) 2000-09-25 2016-12-20 Blue Coat Systems, Inc. Systems and methods for processing data flows
US7739497B1 (en) * 2001-03-21 2010-06-15 Verizon Corporate Services Group Inc. Method and apparatus for anonymous IP datagram exchange using dynamic network address translation
US7277548B2 (en) * 2002-10-23 2007-10-02 Ndosa Technologies, Inc. Cryptographic method and computer program product for use in wireless local area networks
US7444514B2 (en) 2003-10-15 2008-10-28 International Business Machines Corporation Group key exchanges with failures
US7752453B2 (en) * 2004-01-08 2010-07-06 Encryption Solutions, Inc. Method of encrypting and transmitting data and system for transmitting encrypted data
KR100612255B1 (ko) * 2005-01-11 2006-08-14 삼성전자주식회사 무선 네트워크 시스템에서의 데이터 보안장치 및 그 방법
US7839835B2 (en) 2006-08-22 2010-11-23 Nec Laboratories America, Inc. Quantized precoding over a set of parallel channels
US9219604B2 (en) * 2011-05-09 2015-12-22 Cleversafe, Inc. Generating an encrypted message for storage
US9647832B2 (en) 2014-01-13 2017-05-09 Visa International Service Association Efficient methods for protecting identity in authenticated transmissions
EP3257227B1 (en) * 2015-02-13 2021-03-31 Visa International Service Association Confidential communication management
US10791124B2 (en) * 2016-11-11 2020-09-29 Samsung Electronics Co., Ltd. Method and terminal device for encrypting message

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040077569A (ko) * 2003-02-28 2004-09-04 삼성전자주식회사 초 광대역 통신시스템에서 헤더정보 전송장치 및 방법
US20100098080A1 (en) * 2008-10-19 2010-04-22 Robert Stacey Payload Header Suppression with Conditional Field Suppression
US20100278533A1 (en) * 2009-04-30 2010-11-04 Telefonaktiebolaget L M Ericsson (Publ) Bit mask to obtain unique identifier
KR20160127511A (ko) * 2015-04-27 2016-11-04 삼성전자주식회사 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법

Also Published As

Publication number Publication date
US20200068390A1 (en) 2020-02-27
EP3586241A4 (en) 2021-01-13
KR102156812B1 (ko) 2020-09-17
WO2018156206A1 (en) 2018-08-30
CN110651447A (zh) 2020-01-03
US11838751B2 (en) 2023-12-05
EP3586241A1 (en) 2020-01-01
CN110651447B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
KR102156812B1 (ko) 프라이버시 보호 메시지 블라인딩
Wendzel et al. Pattern-based survey and categorization of network covert channel techniques
JP5661627B2 (ja) ワイヤレス通信のためのアドレス指定方式
Fan et al. Security analysis of zigbee
US20160112901A1 (en) Data communication via data packet headers
US11662924B2 (en) Methods and systems for secure command, control, and communications
CN103686717A (zh) 一种物联网传感系统的密钥管理方法
WO2019129201A1 (en) Session management for communications between a device and a dtls server
US11558185B2 (en) Stream-based key management
Florea et al. Challenges in security in Internet of Things
Puthal et al. A synchronized shared key generation method for maintaining end-to-end security of big data streams
Gladisch et al. Securely connecting IoT devices with LoRaWAN
Fujdiak et al. Security in low-power wide-area networks: State-of-the-art and development toward the 5G
Mundt et al. General security considerations of LoRaWAN version 1.1 infrastructures
US7636342B2 (en) WLAN device and method for numbering frames with sequence numbers
CN105744524A (zh) 一种wia-pa工业无线网络中移动设备入网认证机制
Zhang et al. A stealthy covert storage channel for asymmetric surveillance VoLTE endpoints
Ambili et al. A secure software defined networking based framework for IoT networks
Agosta et al. Cyber-security analysis and evaluation for smart home management solutions
Garcia-Morchon et al. The ANGEL WSN security architecture
Karim et al. Fault tolerant, energy efficient and secure clustering scheme for mobile machine‐to‐machine communications
Carrasco et al. Securing a wireless sensor network for human tracking: a review of solutions
KR102609577B1 (ko) 양자 암호키 관리 장치, 방법 및 컴퓨터 프로그램
Kaur et al. Securing network communication between motes using hierarchical group key management scheme using threshold cryptography in smart home using internet of things
US20200099668A1 (en) Randomized traffic selection for flow deception in ipsec ad-hoc and cloaked networks

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant