Recent submissions

Comment · 1 year ago
Swift has been adding support for things like non-copyable types that should help with writing performance sensitive parts.
Comment · 2 years ago
Can someone explain why? Past 3 years have not seen a huge peak like that.

Edit: it is now free

Comment · 2 years ago
https://github.com/apple/swift-homomorphic-encryption/blob/3...

Run SHA256 on the keyword, truncate the hash and take the modulus with number of shards.

Comment · 2 years ago
Check my comment here for some intuition: https://news.ycombinator.com/item?id=41115179

Basically the server does not know, it just computes with every possible value. And the result turns out to be what the client was interested in.

Comment · 2 years ago
There was a recent paper that also uses Swift in the name:

“Cheddar: A Swift Fully Homomorphic Encryption Library for CUDA GPUs” - https://arxiv.org/pdf/2407.13055

We were a little worried, but quickly discovered that they used Swift as an adjective not as a programming language.

[Disclosure: I work on the team responsible for the feature]

Comment · 2 years ago
In this PIR model the server has to read the whole database, otherwise it would be easy on the server to see, that these rows were not accessed and therefore they are not the one the client queried.

In this PIR model the server runtime is O(n) where n is the number of rows.

To keep it practical, we do support sharding the database. Client leaks a few bits of hashed query to pick the right shard, where we process the entire shard. There is a inherent privacy-performance tradeoff: less shards = less leakage vs more shards = better performance & less privacy.

Comment · 2 years ago
A very simple PIR scheme on top of homomorphic encryption that supports multiplying with a plaintext and homomorphic addition, would look like this:

The client one-hot-encodes the query: Enc(0), Enc(1), Enc(0). The server has 3 values: x, y, z. Now the server computes: Enc(0) * x + Enc(1) * y + Enc(0) * z == Enc(y). Client can decrypt Enc(y) and get the value y. Server received three ciphertexts, but does not know which one of them was encryption of zero or one, because the multiplications and additions that the server did, never leak the underlying value.

This gives some intuition on how PIR works, actual schemes are more efficient.

[Disclosure: I work on the team responsible for the feature]

Comment · 2 years ago
> That's a strange use of 'use'? Clearly, talking to some software over the network is 'using' it?

The point is that the proprietary client software was not used.

Comment · 2 years ago
How is this different from CrossOver?
Comment · 3 years ago
> hardware-accelerated PIR which is currently at use at scale.

Can you tell us more about that?

Comment · 3 years ago
Comment · 3 years ago
Comment · 3 years ago
I had phone that could run J2ME but did not have Internet.

I reverse engineered a flash application that showed a map and provided address search. I scraped the map tiles and address to location database. Reimplemented the viewer application as a Java applet and preloaded the tiles and address database to a microSD card connected to the phone. So essentially I built my own offline maps for my not internet connected phone.

Address search required prefix tree because IO was too slow to use binary search on the phone.

Anyway this was done just before I went to a new city to attend university and it was really helpful to find out where I am and where to go. There was no navigation, but it showed the map, gps location and the location where I needed to get to.

So that was my personal project that really had great utility for me.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton