Question: Why are regenerative logic circuits called regenerative? I know that regenerative means to generate again, but why is this word used to describe circuits like flip flops and latches?

Answer: 
Two-way authentication requires two pairs of keys.

Your device has a private key, and any other device that has the corresponding public key can send it encrypted messages.

If you want to only accept messages from one (or more) specific device(s), then your device needs to also have a copy of the public key that corresponds to that device's private key. This allows you to verify that the incoming messages were in fact signed by that other device and no one else.
OK, I actually teach this stuff.

the quick answer is to use SSL-TLS, it has everything you need baked in. I believe your chips supports SSL/TLS already in ROM, see [this IoT app note](http://www.ti.com/lit/pdf/tidued5).

With Transport Layer Security (TLS), you use public key cryptography to establish an ephemeral / transient set of keys for symmetric encryption and authentication (MAC). The server sends the client (client = initiating party) its certificate, which carries its (the server's) public key.

So why should the client trust the certificate, i.e., that's it's really from the server, and not an attacker ("man in the middle")? Well, **at first it shouldn't**. The client should check the certificate's /signature/. I won't get into this, but if they client validates the signature, it should trust that the certificate and the public key on it are authentic. The client uses a certificate loaded into its trusted root store (or "root of trust", or "root certificate store", or any other of 100 names that are used) to authenticate the signature on the server's certificate. I think on the TI CC chips it's called the Trusted Root-Certificate Catalog. This is often referred to as a "chain of trust" in the security world.

Once the client "knows" (hopes, with strong confidence) that it has the server's public key, the 2 parties can exchange information to establish session keys and thus a secure channel (encrypted and authenticated). How all this works isn't technically too complicated but there are many steps and checks that I can't document here. But read up on TLS, and it should all make sense.

The latest version of TLS is 1.3 (summer 2018), this is the "latest and greatest" and what you should be using. Of course, the other side (client or server) needs to support 1.3 as well, but unless it's an old legacy device that is not being updated, it should support v1.3 by now.

Hope that helps.