[kcdc 2025] ai killed your privacy tools

Speaker: Ben Dechrai

Bluesky: ‪@bendechr.ai‬

For more see the table of contents


General

  • Privacy risks
  • We thought robots would do physical labor for us so we could relax. Like Rosie on the Jetsons
  • Have robots to clean floors, mow lawns, farming, build cars. They are single purpose.
  • Best robots are software
  • Single purpose robots so good because software focused on that one thing
  • Child can lift an apple. Cool that a humanoid robot can, but not game changing
  • Identify location from picture based on background
  • Much faster than a human comparing images
  • AI gives statistically most likely next word
  • Humans don’t like to be wrong. LLMs modeled from human data so also don’t like to be wrong and will make stuff up. Have to include in prompt not to do that.

Creativity vs Imagination

  • Our downfall is how successful this is. Killing creativity
  • Creativity and imagination are different.
  • Creativity is making a sandwich
  • Imagination is what goes into the sandwich

Australia experiment

  • Do census every 5 years
  • Tried to map 5% of data from 2011 to 2006
  • In 2016, stored with profile for 18 months
  • Said would keep info anonymous. It was not.
  • SLK581 – statistical linkage key 581. 14 character key as unique id
  • Didn’t make it anonymous. Was algorithmic to generate this key from last name, birthdate and gender
  • Many hashing algorithms generate hash of distinct types so know which one used. Then can create rainbow table for that algorithm for census database.
  • Knowing the pattern for how the key was generated greatly reduces the number of hashes. 36K hashes if know any persons name. That lets find the seed the hashing algorithm used.
  • This isn’t even AI; its programmatic.
  • Ask LLM to find information in the data set. Ex: find people who match a profession.
  • Play with at https://slk581.bendechr.ai

Cross Platform Identity Linking

  • Match patterns across social media accounts to link “anonymous” accounts
  • Includes writing style, typos, idioms
  • Cambridge Analytica was doing this in 2016.
  • Now only costs $10/month
  • MCP server exposes data to LLM. Can enhance ability to break privacy

Chatbot with employee data

  • Acme AI solutions (not clear if real company or made up for example)
  • Ask chatbot about employees like “do employees like pets”
  • Controls include ensuring queries are for aggregates and data set has at least 6 results. Tried to protect specific employee data.
  • LLM described what data can/can’t get
  • Claude backend doesn’t limit to one query at a time. Can infer next logical step based on results.
  • https://slk581.bendechr.ai

Target

AI can

  • Predict shopping patterns
  • Identify location without GPS
  • Find API weaknesses
  • etc

eLLephaMts never forget

[cute play on elephants with LLM]

  • Repeat the word company many times
  • After doing it a lot of times, starts giving other internal info

What can I do?

  • Only store what need to store
  • Separate data where possible. Employee database shouldn’t include data used by chat blot
  • The more data you store, the faster a has can be reverse engineered.
  • Rate limiting – LLMs are faster, slow them down without human experience being degraded.
  • Encrypt data
  • Context analysis – do questions seems like they are trying to get specific data. ex: how many people earn more than 150K, how many people earn more than 200K, how many people earn between $225 and $250K. Can use LLM to protect against malicious input from users
  • Prompt engineering – give LLM constraints on how answer. ex: avoid cyclic reasoning to prevent confusing it into giving too much info

Homomorphic Encryption

  • Use AI to see how well done
  • With homomorphic encryption, can do math with encrypted values without decrypting or knowing keys
  • https://homomorphic.bendechr.ai

My take

The examples/demos were great. It was nice seeing the build up to it I appreciate the URLs of the demos being on the screen in addition

KCDC 2025 Live Blog Table of Contents

KCDC grew. There are talks in two halls this year plus dev ops days, I hurt my finger so curious to see how live blogging goes! (It’s going fine. WordPress autocomplete lets me save typing some characters which evens out that touch typing with one finger less usable is slower)

Wednesday

Thursday

Friday

[javaone 2025] know your java

Speaker: Venkat Subramaniam

See the table of contents for more posts


Exercise 0 – warm up

  • How many years have you been doing Java

Exercise 1 – Collection’s remove

  • An ArrayList containing 1, 2, 3 becomes 1, 3 when call remove(1)
  • If you change to Collection<Integer> numbers = new ArrayList<>, what happens.
  • It is [2,3] because uses method on Collection, not on the ArrayList
  • “Code always does what you type and not what you mean”

Exercise 2: type inference

  • Exercise 1 but with var numbers = new ArrayList<>()
  • now it is [1,3] because var uses type on right which is ArrayList
  • Just because you like type inference doesn’t mean use it all the time. Determine when right thing to do

Exercise 3: Arrays.asList()

  • Arrays.asList(1, 2, 3)
  • Which of add/set are printed and what is in list?
  • add throws exception, set works so it is [1,2, 2]
  • Lesson: quit using asList. Use List.of instead

Exercise 4: forEach

  • .forEach(name -> upper.add(name))
  • worked until made one change
  • side effects is the problem (change was probably making it parallel)
  • forgot “it works on my machine”. better is “it failed on my machine”. Want it to fail on your machine instead of in prod
  • The lambda is not pure. A pure function is idempotent. Returns same result for same input regardless of how many times it is called.
  • A pure function does not emphasize anything outside it. It is ok to mutate; it’s like changing clothes. Just don’t do so in public; aka as a side effect
  • A pure function does not depending on anything outside that may possibly change.

Exercise 5: stream

  • int[] factor= new int[]1,2,3};
  • stream = numbers.stream().map(n -> n * factor[0]);
  • factor[0] = 0;
  • stream.forEach(System.out::println)
  • 000 because lazy evaluation

My take

This was cool. It wasn’t Venkat’s usual style. It was more interactive. He had a QR code to a Google form for each exercise so the audience could reply. That’s a great technique. If I ever have to present remotely about certifications, I’m going to copy it! It was interesting seeing the Google form results A lot of mixed results