Skip to content

Commit d361ee1

Browse files
committed
Sync with spec
1 parent 992d1b7 commit d361ee1

File tree

3 files changed

+111
-82
lines changed

3 files changed

+111
-82
lines changed

www/pages/about.md

Lines changed: 52 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -9,35 +9,35 @@ permalink: /about/
99

1010
IPCrypt is a simple, open specification that suggests methods for encrypting and obfuscating IP addresses. It offers both deterministic format-preserving and non-deterministic approaches that work with both IPv4 and IPv6 addresses.
1111

12-
This community effort was inspired by privacy concerns highlighted in [RFC6973](https://datatracker.ietf.org/doc/html/rfc6973) and [RFC7258](https://datatracker.ietf.org/doc/html/rfc7258) about pervasive monitoring and data collection. We aimed to help maintain the practical utility of IP addresses in network operations while addressing these privacy considerations.
12+
This specification addresses concerns raised in [RFC7624](https://datatracker.ietf.org/doc/html/rfc7624) regarding confidentiality when sharing data with third parties, providing cryptographically sound techniques that enable data analysis while protecting user privacy from parties without key access.
1313

14-
## The Challenge We're Trying to Help With
14+
## The Challenge We're Addressing
1515

16-
IP addresses are fundamental to network operations but present some privacy challenges:
16+
IP addresses are personally identifiable information requiring protection, yet common techniques have fundamental limitations:
1717

18-
1. **Privacy Considerations**: IP addresses can potentially reveal information about users
19-
2. **Regulatory Context**: Some jurisdictions consider IP addresses as personal data (e.g., GDPR)
20-
3. **Research Limitations**: Difficulty sharing network data for research or analysis
21-
4. **Service Provider Concerns**: Sharing raw IP addresses with external services raises privacy questions
22-
5. **Varied Approaches**: Different organizations use different methods to protect IP addresses
18+
1. **Truncation Problems**: Zeroing parts of addresses provides unpredictable privacy - a /24 mask may hide one user or thousands
19+
2. **Hashing Limitations**: Produces non-reversible outputs unsuitable for operational tasks like abuse investigation
20+
3. **Ad-hoc Schemes**: Often lack rigorous security analysis and cannot interoperate between systems
21+
4. **Generic Encryption Issues**: Expands data unpredictably, breaks compatibility with network tools, operates too slowly for high-volume processing
22+
5. **Regulatory Requirements**: GDPR and similar regulations require proper protection of IP addresses as personal data
2323

24-
IPCrypt tries to offer a simple, consistent approach to IP address encryption that anyone can implement.
24+
IPCrypt resolves these conflicts through purpose-built cryptographic techniques designed for network-rate processing.
2525

2626
## Potential Benefits
2727

2828
### For Network Operators
2929

30-
- **Practical Functionality**: Use IP addresses for routing, logging, and analytics while considering privacy
31-
- **Regulatory Considerations**: May help with data protection requirements by encrypting identifiers
32-
- **Research Possibilities**: Share network data with researchers without exposing raw addresses
33-
- **Common Approach**: Use a shared specification instead of creating custom solutions
30+
- **Efficiency and Compactness**: All variants operate on exactly 128 bits, achieving single-block encryption speed
31+
- **High Usage Limits**: Non-deterministic variants safely handle ~4 billion (nd) to ~18 quintillion (ndx) operations per key
32+
- **Format Preservation**: Deterministic mode produces valid IP addresses that flow through existing infrastructure
33+
- **Interoperability**: Identical results across implementations enable seamless data exchange
3434

3535
### For Privacy Advocates
3636

37-
- **User Privacy**: Help protect user information in logs and analytics
38-
- **Reduced Tracking**: Non-deterministic modes can prevent correlation across datasets
39-
- **Open Methods**: Clearly defined cryptographic approaches with known properties
40-
- **Versatile Application**: Works with both IPv4 and IPv6 addresses
37+
- **Protection Against Third Parties**: Prevents unauthorized access to user information without the encryption key
38+
- **Correlation Attack Resistance**: Non-deterministic modes use random tweaks to hide patterns
39+
- **Mathematically Provable Security**: Unlike truncation or basic hashing, provides rigorous security properties
40+
- **Privacy-Preserving Analytics**: Enables counting, rate limiting, and deduplication without exposing original values
4141

4242
### For Developers
4343

@@ -52,54 +52,54 @@ IPCrypt operates by converting IP addresses to a 16-byte representation and then
5252

5353
1. **IP Address Conversion**: Both IPv4 and IPv6 addresses are converted to a standard 16-byte format
5454
2. **Encryption**: The 16-byte representation is encrypted using one of three modes:
55-
- **Deterministic**: Using AES-128 as a single-block operation
56-
- **Non-deterministic (ND)**: Using KIASU-BC with an 8-byte tweak
57-
- **Non-deterministic Extended (NDX)**: Using AES-XTS with a 16-byte tweak
58-
3. **Output**: The encrypted result is either returned as a 16-byte value (deterministic) or combined with the tweak (non-deterministic)
55+
- **ipcrypt-deterministic**: Using AES-128 as a single-block operation
56+
- **ipcrypt-nd**: Using KIASU-BC with an 8-byte tweak
57+
- **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)
5959

6060
## Encryption Modes Explained
6161

6262
### ipcrypt-deterministic
6363

64-
- Uses AES-128 in a single-block operation
65-
- Produces a 16-byte output that can be converted back to an IP address format
66-
- Always produces the same output for a given input and key
67-
- Suitable for applications where format preservation is required and linkability is acceptable
64+
- Uses AES-128 as a single-block operation
65+
- Produces a 16-byte output, most compact option
66+
- Same IP always produces same ciphertext (allows correlation but enables duplicate detection)
67+
- Choose when duplicate identification is needed or format preservation is critical
6868

6969
### ipcrypt-nd
7070

7171
- Uses the KIASU-BC tweakable block cipher with an 8-byte tweak
72-
- Produces a 24-byte output (8-byte tweak + 16-byte ciphertext)
73-
- Different outputs for the same input due to random tweak
74-
- Suitable for applications where correlation protection is important
72+
- Produces a 24-byte output (16-byte ciphertext + 8-byte tweak)
73+
- Same IP produces different ciphertexts (prevents most correlation)
74+
- Approximately 4 billion operations per key safely
7575

7676
### ipcrypt-ndx
7777

7878
- Uses the AES-XTS tweakable block cipher with a 16-byte tweak
79-
- Produces a 32-byte output (16-byte tweak + 16-byte ciphertext)
80-
- Highest security margin with 128-bit tweak space
81-
- Suitable for applications requiring maximum security and correlation protection
82-
83-
## Comparison with Ad-hoc Mechanisms
84-
85-
Many organizations currently use ad-hoc mechanisms to protect IP addresses, such as:
86-
87-
1. **Simple Hashing**: Vulnerable to rainbow table attacks
88-
2. **Truncation**: Removes information but doesn't provide cryptographic protection
89-
3. **Tokenization**: Often lacks consistency and security guarantees
90-
4. **Custom Encryption**: May have unknown security properties or implementation flaws
91-
92-
IPCrypt offers several advantages over these approaches:
93-
94-
| Feature | Ad-hoc Mechanisms | IPCrypt |
95-
| --------------------------- | -------------------- | ------------------------------------ |
96-
| Consistency | Varies widely | Well-defined specification |
97-
| Security Properties | Often unclear | Cryptographically sound |
98-
| Implementation Availability | Limited | Multiple languages |
99-
| Format Preservation | Not always supported | Available in deterministic mode |
100-
| Correlation Protection | Rarely addressed | Supported in non-deterministic modes |
101-
| Decryption Capability | Often one-way | Fully invertible |
102-
| Documentation | Typically minimal | Comprehensive specification |
79+
- Produces a 32-byte output (16-byte ciphertext + 16-byte tweak)
80+
- Maximum privacy protection when storage permits
81+
- Approximately 18 quintillion operations per key safely
82+
83+
## Comparison with Common Approaches
84+
85+
Many organizations currently use flawed mechanisms to protect IP addresses:
86+
87+
1. **Truncation**: Irreversibly destroys data while providing inconsistent privacy (a /24 mask may hide one user or thousands)
88+
2. **Simple Hashing**: Non-reversible, unsuitable for operational tasks like abuse investigation
89+
3. **Ad-hoc Encryption**: Often lacks rigorous security analysis and cannot interoperate
90+
4. **Generic Encryption**: Too slow for network speeds, expands data unpredictably
91+
92+
IPCrypt offers fundamental advantages:
93+
94+
| Feature | Common Approaches | IPCrypt |
95+
| --------------------------- | --------------------------- | ------------------------------------------- |
96+
| Speed | Varies, often slow | Single-block speed for network rates |
97+
| Data Size | Often expands significantly | Compact: 16-32 bytes total |
98+
| Reversibility | Usually one-way | Fully reversible with key |
99+
| Security Analysis | Often unclear | Mathematically provable properties |
100+
| Interoperability | Usually proprietary | Standardized across implementations |
101+
| Privacy Guarantees | Inconsistent | Configurable: deterministic or randomized |
102+
| Format Preservation | Rarely supported | Available in deterministic mode |
103103

104104
## Real-World Applications
105105

www/pages/index.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ permalink: /
99
<div class="container mx-auto px-4 py-12 text-center">
1010
<h1 class="text-4xl md:text-5xl font-bold mb-6">A Common Approach to IP Address Encryption</h1>
1111
<p class="text-xl max-w-3xl mx-auto mb-8">
12-
IPCrypt is a simple, open specification for encrypting and obfuscating IP addresses, balancing privacy considerations with practical network operations.
12+
IPCrypt provides secure, efficient methods for encrypting IP addresses for privacy-preserving storage, logging, and analytics while enabling data analysis without exposing user information.
1313
</p>
1414
<div class="flex flex-wrap justify-center gap-4">
1515
<a href="{{ site.baseurl }}/about/" class="btn btn-primary">Learn More</a>
@@ -24,10 +24,10 @@ permalink: /
2424
<div class="max-w-3xl mx-auto">
2525
<h2 class="text-3xl font-bold mb-6 text-center">What is IPCrypt?</h2>
2626
<p class="text-lg mb-6">
27-
IPCrypt is a community-created specification that suggests methods for encrypting and obfuscating IP addresses. It aims to help network operators, researchers, and privacy advocates share or analyze data while considering address privacy.
27+
IPCrypt is a simple, open specification that suggests methods for encrypting and obfuscating IP addresses. It offers both deterministic format-preserving and non-deterministic approaches that work with both IPv4 and IPv6 addresses.
2828
</p>
2929
<p class="text-lg mb-6">
30-
The specification offers both deterministic format-preserving and non-deterministic approaches that work with both IPv4 and IPv6 addresses.
30+
Unlike truncation that destroys data irreversibly and hashing that cannot be reversed, IPCrypt provides mathematically secure, reversible encryption designed for high-performance processing at network speeds.
3131
</p>
3232
<p class="text-lg mb-6">
3333
<strong>Simplicity</strong> is a core value in IPCrypt's design. Rather than trying to create new cryptographic methods, we've used established standards that are well-understood and widely available, making it easier for anyone to implement.
@@ -44,42 +44,42 @@ permalink: /
4444
<div class="feature-card">
4545
<h3 class="text-xl font-bold mb-3">Privacy Protection</h3>
4646
<p>
47-
Encrypt IP addresses to prevent disclosure of user-specific information when data is logged or measured, as discussed in RFC6973.
47+
Prevent exposure of sensitive user information to third parties without key access, addressing data minimization concerns from RFC6973.
4848
</p>
4949
</div>
5050
5151
<div class="feature-card">
5252
<h3 class="text-xl font-bold mb-3">Format Preservation</h3>
5353
<p>
54-
Ensure that encrypted output remains a valid IP address, allowing network devices to process the data without modification.
54+
Deterministic mode produces valid IP addresses, enabling encrypted addresses to flow through existing infrastructure without modification.
5555
</p>
5656
</div>
5757
5858
<div class="feature-card">
5959
<h3 class="text-xl font-bold mb-3">Correlation Protection</h3>
6060
<p>
61-
Non-deterministic modes use a random tweak to obscure linkability while keeping the underlying input confidential.
61+
Non-deterministic modes use random tweaks to produce different ciphertexts for the same IP, preventing pattern analysis.
6262
</p>
6363
</div>
6464
6565
<div class="feature-card">
6666
<h3 class="text-xl font-bold mb-3">Privacy-Preserving Analytics</h3>
6767
<p>
68-
Perform common operations like counting unique clients or implementing rate limiting using encrypted IP addresses without accessing original values.
68+
Count unique clients, implement rate limiting, and perform deduplication directly on encrypted addresses without revealing original values.
6969
</p>
7070
</div>
7171
7272
<div class="feature-card">
73-
<h3 class="text-xl font-bold mb-3">Third-Party Service Integration</h3>
73+
<h3 class="text-xl font-bold mb-3">Seamless Integration</h3>
7474
<p>
75-
Use encrypted IP addresses as keys or identifiers when integrating with potentially untrusted third-party services or cloud providers.
75+
Use encrypted IPs as privacy-preserving identifiers when interacting with untrusted services, cloud providers, or external platforms.
7676
</p>
7777
</div>
7878
7979
<div class="feature-card">
80-
<h3 class="text-xl font-bold mb-3">Consistent Approach</h3>
80+
<h3 class="text-xl font-bold mb-3">High Performance</h3>
8181
<p>
82-
Replace ad-hoc mechanisms with a well-defined, cryptographically sound specification that can be implemented consistently across systems.
82+
All variants operate on exactly 128 bits, achieving single-block encryption speed critical for network-rate processing.
8383
</p>
8484
</div>
8585
</div>
@@ -111,10 +111,10 @@ permalink: /
111111
<div class="card">
112112
<h3 class="text-xl font-bold mb-3">ipcrypt-deterministic</h3>
113113
<p class="mb-4">
114-
Deterministic encryption using AES128 (applied as a single-block operation).
114+
Deterministic encryption using AES-128 as a single-block operation.
115115
</p>
116116
<p class="text-sm text-gray-600">
117-
Preserves format but reveals repeated inputs.
117+
16-byte output, format-preserving, allows duplicate detection.
118118
</p>
119119
</div>
120120
@@ -124,7 +124,7 @@ permalink: /
124124
Non-deterministic encryption using the KIASU-BC tweakable block cipher with an 8-byte tweak.
125125
</p>
126126
<p class="text-sm text-gray-600">
127-
Produces a 24-byte output using an 8-byte tweak.
127+
24-byte output, ~4 billion operations per key safely.
128128
</p>
129129
</div>
130130
@@ -134,7 +134,7 @@ permalink: /
134134
Non-deterministic encryption using the AES-XTS tweakable block cipher with a 16-byte tweak.
135135
</p>
136136
<p class="text-sm text-gray-600">
137-
Produces a 32-byte output using a 16-byte tweak.
137+
32-byte output, ~18 quintillion operations per key safely.
138138
</p>
139139
</div>
140140
</div>

0 commit comments

Comments
 (0)