Possibility to restrict file access for users in network

Now is it possible to set permission on any file for some users in network?
For example, I have a file with secret information and want to share it with some users. Is it possible to restrict from others and share somewhen you want.
May there is such opportunity using blockchain/ethereum?

Unless you are running a private cluster, all IPFS resources are public.
If you want to limit access to your data, encrypt it before adding it to IPFS.
You can use any encryption scheme you want.

Could give some example, how can I ecnrypt large file, and then decrypt one?

1 Like

As @lidel said, you can always encrypt the content before adding it to the network. This is a simple example using go-simple-encrypt

$ go get -u github.com/jbenet/go-simple-encrypt/senc

$ key=$(senc --key-gen)

$ echo $key

$ echo "Hello World" | senc -k $key -e > encrypted-text

$ ipfs add encrypted-text
added QmNaXCruevY7WeqJ2Ksr9tPvvigGvQDCgpk7Y81CNS2FEs encrypted-text

$ ipfs cat QmNaXCruevY7WeqJ2Ksr9tPvvigGvQDCgpk7Y81CNS2FEs

$ ipfs cat QmNaXCruevY7WeqJ2Ksr9tPvvigGvQDCgpk7Y81CNS2FEs | senc -k $key -d
Hello World

You can use NuCypher to achieve this: