diff --git a/src/decrypt-key.hpp b/src/decrypt-key.hpp
index fdccea7..df45428 100644
--- a/src/decrypt-key.hpp
+++ b/src/decrypt-key.hpp
@@ -47,7 +47,7 @@
   }
 
   const Buffer&
-  getKeyBits()
+  getKeyBits() const
   {
     return m_keyBits;
   }
diff --git a/src/group-manager.cpp b/src/group-manager.cpp
index deac768..b19ac20 100644
--- a/src/group-manager.cpp
+++ b/src/group-manager.cpp
@@ -31,6 +31,7 @@
 static const name::Component E_KEY_COMPONENT("E-KEY");
 static const name::Component D_KEY_COMPONENT("D-KEY");
 static const name::Component READ_COMPONENT("read");
+static const name::Component FOR_COMPONENT("FOR");
 
 GroupManager::GroupManager(const Name& prefix, const Name& dataType, const std::string& dbDir,
                            const int paramLength, const int freshPeriod)
@@ -179,9 +180,9 @@
 GroupManager::createEKeyData(const std::string& startTs, const std::string& endTs,
                              const Buffer& pubKeyBuf)
 {
-  Name dataName(m_namespace);
-  dataName.append(E_KEY_COMPONENT).append(startTs).append(endTs);
-  Data data(dataName);
+  Name name(m_namespace);
+  name.append(E_KEY_COMPONENT).append(startTs).append(endTs);
+  Data data(name);
   data.setFreshnessPeriod(time::hours(m_freshPeriod));
   data.setContent(pubKeyBuf.get(), pubKeyBuf.size());
   m_keyChain.sign(data);
@@ -193,10 +194,10 @@
                              const Name& keyName, const Buffer& priKeyBuf,
                              const Buffer& certKey)
 {
-  Name dataName(m_namespace);
-  dataName.append(D_KEY_COMPONENT);
-  dataName.append(startTs).append(endTs).append(keyName.getPrefix(-1));
-  Data data = Data(dataName);
+  Name name(m_namespace);
+  name.append(D_KEY_COMPONENT);
+  name.append(startTs).append(endTs).append(FOR_COMPONENT).append(keyName);
+  Data data = Data(name);
   data.setFreshnessPeriod(time::hours(m_freshPeriod));
   algo::EncryptParams eparams(tlv::AlgorithmRsaPkcs);
   algo::encryptData(data, priKeyBuf.buf(), priKeyBuf.size(), keyName,
diff --git a/tests/unit-tests/group-manager.t.cpp b/tests/unit-tests/group-manager.t.cpp
index 4355957..4564939 100644
--- a/tests/unit-tests/group-manager.t.cpp
+++ b/tests/unit-tests/group-manager.t.cpp
@@ -291,8 +291,8 @@
 
   // second data and decrypt
   dataIterator++;
-  BOOST_CHECK_EQUAL(dataIterator->getName().getPrefix(-2).toUri(),
-                    "/Alice/read/data_type/D-KEY/20150825T090000/20150825T100000");
+  BOOST_CHECK_EQUAL(dataIterator->getName().toUri(),
+                    "/Alice/read/data_type/D-KEY/20150825T090000/20150825T100000/FOR/ndn/memberA/ksk-123");
 
   //////////////////////////////////////////////////////////////////////// start decryption
   Block dataContent = dataIterator->getContent();
@@ -340,6 +340,16 @@
                                 derivedGroupEKey.getKeyBits().begin(),
                                 derivedGroupEKey.getKeyBits().end());
 
+  // third data and decrypt
+  dataIterator++;
+  BOOST_CHECK_EQUAL(dataIterator->getName().toUri(),
+                    "/Alice/read/data_type/D-KEY/20150825T090000/20150825T100000/FOR/ndn/memberB/ksk-123");
+
+  // second data and decrypt
+  dataIterator++;
+  BOOST_CHECK_EQUAL(dataIterator->getName().toUri(),
+                    "/Alice/read/data_type/D-KEY/20150825T090000/20150825T100000/FOR/ndn/memberC/ksk-123");
+
   // invalid time stamp to get group key
   TimeStamp tp2(from_iso_string("20150826T083000"));
   BOOST_CHECK_EQUAL(manager.getGroupKey(tp2).size(), 0);
