Skip to main content

LoRaWAN, a widely deployed LPWAN protocol, raises privacy concerns due to metadata exposure, particularly concerning the exploitation of stable device identifiers. For the first time in literature, we propose two privacy-preserving pseudonym schemes tailored for LoRaWAN: resolvable pseudonyms and sequential pseudonyms. We extensively evaluate their performance and applicability through theoretical analysis and simulations based on a large-scale real-world dataset of 71 million messages. We conclude that sequential pseudonyms are the best solution.

This repository analyses the performances of sequential private identifiers: a LoRaWAN privacy orentied communication protocol.

We use efficient numerical methods to compute the mass function and the CDF of streaks of repeating events. The expectation of packet loss is computed using Markov chains for improved performances.

Research work

This work is based on an extention of the follwoing research paper: https://inria.hal.science/hal-04525080 Please cite this paper if you use this package in your research project.

Installation

pip install spistats

Documentation

The full API documentation is available here https://jaalmoes.com/doc/spistats/.

Usage

Generating figures of the paper

python -m spistats.markov

Collision

import spistats as spi
col = spi.Collision(nbr_dev, nbr_adr, adr_per_dev)

Desynchronization

import spistats.desynchronization as dsync
packet_count = dsync.NumberOfPacketBeforeDsync(0.2,5)
packet_count = dsync.NumberOfPacketBeforeDsync_multi([0.2,0.3],5)

Plotting

import spistats.plot as plt
import spistats.desynchronization as dsync
dsync_count = dsync.NumberOfDsync(0.2,2,10)
plt.cdf(dsync_count)

Release files for spistats 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spistats 0.1.0
File Size Uploaded
spistats-0.1.0.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for spistats 0.1.0
File Interpreter ABI Platform
spistats-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / spistats-0.1.0.tar.gz

Download URL spistats-0.1.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
64a61d063bf31212ef3d639d696cf3ab947d2d99c995c7ed4770086bcb8ddc8f
BLAKE2b-256 checksum
How to use checksums
02a2194eb23ec4c0d90cd83616465505b53067c0b34c160c5a644e23752cee3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.3

Release files / spistats-0.1.0-py3-none-any.whl

Download URL spistats-0.1.0-py3-none-any.whl
Size 21.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47c016e22e0955c8522a438ae3b47eec229d471e0b19b5c36fc9f33ecd3049a1
BLAKE2b-256 checksum
How to use checksums
bbec28205c14bdd9215924a66bc784a95bf1dfba8d0e7bdaf5b631486a237a0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page