You can start by using the openssl command line tool (or library if you're using a scripting language like PHP). Each user generates an RSA key pair and publishes the public key in stream 1. For more detailed instructions, use Google or see this example that we found:
http://stackoverflow.com/questions/5244129/use-rsa-private-key-to-generate-public-key
In terms of symmetric encryption, for each item generate a secret key (say from a random alphanumeric string) and you can then use a method like this to perform the encryption before embedding in stream 2.
http://stackoverflow.com/a/16056418
Finally, use users' public keys (from stream 1) to encrypt the secret key for each item for publishing in stream 3:
http://unix.stackexchange.com/questions/12260/how-to-encrypt-messages-text-with-rsa-using-openssl
The same openssl rsautl can be used with other options for decryption. See the manual page:
https://wiki.openssl.org/index.php/Manual:Rsautl(1)