Skip to content

Commit 0ebadee

Browse files
committed
Document ipcrypt-pfx
1 parent 5f65bdf commit 0ebadee

File tree

8 files changed

+336
-27
lines changed

8 files changed

+336
-27
lines changed

www/Gemfile.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ GEM
2424
em-websocket (0.5.3)
2525
eventmachine (>= 0.12.9)
2626
http_parser.rb (~> 0)
27-
ethon (0.16.0)
27+
ethon (0.15.0)
2828
ffi (>= 1.15.0)
2929
eventmachine (1.2.7)
3030
execjs (2.10.0)
@@ -211,7 +211,7 @@ GEM
211211
rb-inotify (~> 0.9, >= 0.9.10)
212212
logger (1.6.6)
213213
mercenary (0.3.6)
214-
mini_portile2 (2.8.8)
214+
mini_portile2 (2.8.9)
215215
minima (2.5.1)
216216
jekyll (>= 3.5, < 5.0)
217217
jekyll-feed (~> 0.9)
@@ -230,7 +230,7 @@ GEM
230230
rb-fsevent (0.11.2)
231231
rb-inotify (0.11.1)
232232
ffi (~> 1.0)
233-
rexml (3.4.1)
233+
rexml (3.4.3)
234234
rouge (3.30.0)
235235
ruby2_keywords (0.0.5)
236236
rubyzip (2.4.1)
@@ -246,8 +246,8 @@ GEM
246246
simpleidn (0.2.3)
247247
terminal-table (1.8.0)
248248
unicode-display_width (~> 1.1, >= 1.1.1)
249-
typhoeus (1.4.1)
250-
ethon (>= 0.9.0)
249+
typhoeus (1.5.0)
250+
ethon (>= 0.9.0, < 0.16.0)
251251
tzinfo (2.0.6)
252252
concurrent-ruby (~> 1.0)
253253
unicode-display_width (1.8.0)
@@ -267,4 +267,4 @@ DEPENDENCIES
267267
webrick (~> 1.8)
268268

269269
BUNDLED WITH
270-
2.5.0
270+
1.17.2

www/pages/about.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,13 @@ IPCrypt resolves these conflicts through purpose-built cryptographic techniques
5050

5151
IPCrypt operates by converting IP addresses to a 16-byte representation and then applying cryptographic operations:
5252

53-
1. **IP Address Conversion**: Both IPv4 and IPv6 addresses are converted to a standard 16-byte format
54-
2. **Encryption**: The 16-byte representation is encrypted using one of three modes:
53+
1. **IP Address Conversion**: Both IPv4 and IPv6 addresses are converted to a standard 16-byte format (except for ipcrypt-pfx which maintains native sizes)
54+
2. **Encryption**: The address is encrypted using one of four modes:
5555
- **ipcrypt-deterministic**: Using AES-128 as a single-block operation
56+
- **ipcrypt-pfx**: Using dual AES-128 for prefix-preserving encryption
5657
- **ipcrypt-nd**: Using KIASU-BC with an 8-byte tweak
5758
- **ipcrypt-ndx**: Using AES-XTS with a 16-byte tweak
58-
3. **Output**: Deterministic produces 16 bytes, nd produces 24 bytes (16 + 8 tweak), ndx produces 32 bytes (16 + 16 tweak)
59+
3. **Output**: Deterministic produces 16 bytes, pfx maintains native sizes (4 bytes for IPv4, 16 for IPv6), nd produces 24 bytes (16 + 8 tweak), ndx produces 32 bytes (16 + 16 tweak)
5960

6061
## Encryption Modes Explained
6162

@@ -66,6 +67,13 @@ IPCrypt operates by converting IP addresses to a 16-byte representation and then
6667
- Same IP always produces same ciphertext (allows correlation but enables duplicate detection)
6768
- Choose when duplicate identification is needed or format preservation is critical
6869

70+
### ipcrypt-pfx
71+
72+
- Uses dual AES-128 for bit-by-bit prefix-preserving encryption
73+
- Maintains native address sizes (4 bytes for IPv4, 16 bytes for IPv6)
74+
- Preserves network structure - addresses from same subnet share encrypted prefixes
75+
- Choose when network-level analytics are needed while protecting actual network identities
76+
6977
### ipcrypt-nd
7078

7179
- Uses the KIASU-BC tweakable block cipher with an 8-byte tweak

0 commit comments

Comments
 (0)