In fact, this won't work even if you reverse the paradigm and store a reference to EncryptedComms in every object you'd like to be destroyed before it.
when a script die () s, there doesn't seem to be any way to predict the order in which the destructors will fire.