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)
| File | Size | Uploaded | |
|---|---|---|---|
| spistats-0.1.0.tar.gz | 1.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|